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()
其他的和上面的一样
浙公网安备 33010602011771号