Selenium简单用法

选择元素:

​ 1.基本用法

​ 2.css选择

​ 3.xpath选择

操控元素

点击元素 非常简单,就是调用元素WebElement对象的 click方法。

当我们调用 WebElement 对象的 click 方法去点击 元素的时候, 浏览器接收到自动化命令,点击的 是该元素的 中心点 位置 。

输入字符串 也非常简单,就是调用元素WebElement对象的send_keys方法。

WebElement对象的 text 属性,可以获取元素 展示在界面上的 文本内容。

WebElement对象的 get_attribute 方法来获取元素的属性值。

关闭浏览器窗口可以调用WebDriver对象的 quit 方法,像 wd.quit() 这样。

要获取整个元素对应的HTML文本内容,可以使用

element.get_attribute('outerHTML')

如果,只是想获取某个元素 内部 的HTML文本内容,可以使用 element.get_attribute('innerHTML')

对于input输入框的元素,要获取里面的输入文本,用text属性是不行的,这时可以使用 element.get_attribute('value')

通过WebElement对象的 text 属性,可以获取元素 展示在界面上的 文本内容。

但是,有时候,元素的文本内容没有展示在界面上,或者没有完全完全展示在界面上。 这时,用WebElement对象的text属性,获取文本内容,就会有问题。

出现这种情况,可以尝试使用 element.get_attribute('innerText') ,或者 element.get_attribute('textContent')

鼠标右键点击、双击、移动鼠标到某个元素、鼠标拖拽等。

这些操作,可以通过 Selenium 提供的 ActionChains 类来实现。

还有很多,具体查看 ActionChains

窗口切换

嵌入式html切换

在html语法中,frame 元素 或者iframe元素的内部 会包含一个 被嵌入的 另一份html文档。

在我们使用selenium打开一个网页是, 我们的操作范围 缺省是当前的 html , 并不包含被嵌入的html文档里面的内容。

如果我们要 操作 被嵌入的 html 文档 中的元素, 就必须 切换操作范围 到 被嵌入的文档中。

使用 WebDriver 对象的 switch_to 属性,像这样

wd.switch_to.frame(frame_reference)

其中, frame_reference 可以是 frame 元素的属性 name 或者 ID 。

窗口切换

可以使用Webdriver对象的switch_to属性的 window方法,如下所示:

wd.switch_to.window(handle)

参数handle需要传入浏览器里面所有的窗口句柄。句柄可以想象成ID

选择框

radio框直接用WebElement的click方法,模拟用户点击就可以了。

checkbox框先把已经选中的选项全部点击一下,再选择

select单选框:

不管原来选的是什么,直接通过 select_by_visible_text 方法选择即可。

导入select类
from selenium.webdriver.support.ui import Select

Select多选框:

可以用select类 的deselect_all方法,清除所有已经选中的选项。

然后再通过 select_by_visible_text 方法选择。

特殊小技巧

开发者工具栏 console 里面执行如下js代码
setTimeout(function(){debugger}, 5000)

会使浏览器在5000毫秒后进入debug状态,相当于冻结,但此状态可以用开发者工具。

窗口大小

有时间我们需要获取窗口的属性和相应的信息,并对窗口进行控制

  • 获取窗口大小
driver.get_window_size()
  • 改变窗口大小
driver.set_window_size(x, y)
获取当前窗口标题

浏览网页的时候,我们的窗口标题是不断变化的,可以使用WebDriver的title属性来获取当前窗口的标题栏字符串。

driver.title
获取当前窗口URL地址
driver.current_url

弹出对话框

注意:弹出的对话框不是html里面的

Alert弹出框:

Alert 弹出框,目的就是显示通知信息,只需用户看完信息后,点击 OK(确定) 就可以了,如下

driver.switch_to.alert.accept()

如果程序要获取弹出对话框中的信息内容, 可以通过 如下代码

driver.switch_to.alert.text

Confirm弹出框:

Confirm弹出框,主要是让用户确认是否要进行某个操作。

如果我们想点击 OK 按钮, 还是用刚才的 accept方法,如下

driver.switch_to.alert.accept()

如果我们想点击 Cancel 按钮, 可以用 dismiss方法,如下

driver.switch_to.alert.dismiss()

如果程序要获取弹出对话框中的信息内容,和上面的 Alert 弹出框的方法一样

Prompt弹出框:

出现 Prompt 弹出框 是需要用户输入一些信息,提交上去。

可以调用如下方法

driver.switch_to.alert.send_keys()

其他的和上面的一样

posted @ 2020-08-14 13:15  Wwxs  阅读(73)  评论(0)    收藏  举报