五、selenium05 元素操作api&鼠标事件
目录
2.3 长按 click_and_hold() :按下鼠标左键在一个元素上
元素定位需要两部分:① 元素信息(浏览器开发者工具) ②代码定位元素的api(id,name,xppth,css等方法)
元素识别后就是要对元素进行操作
用火狐定位元素,用谷歌做自动化测试比较好。
注意:元素信息用复制的方式+引号的使用:外面用单,里面就用双,防止匹配失败
Shift+enter 快速换行
1、常用元素操作API
定位到元素后,需要对元素进行操作,常见的有鼠标点击、键盘操作等,
这取决于我们定位到的对象支撑哪些操作。一般来说,所有与页面交互的操
作都将通过WebElement接口。
webdriver中常用的操作元素的方法有如下几个:
1.1 常用四种操作
clear(): 清除对象的内容
driver.find_element_by_id('kw').clear()
send_keys(): 在对象上模拟按键输入
driver.find_element(By.ID,'kw').send_keys("12306")
click(): 单击对象,强调对象的独立性
driver.find_element(By.ID,'su').click()
submit() : 提交表单,要求对象必须是表单,表单就是form
driver.find_element(By.ID,'form').submit()
①提交表单的(get post协议提交) ②解决大表单的提交按钮 不好定位的问题,不用click(),直接submit()
注意:这种情况不能有name=’submit’的元素,否则该元素会和submit()方法造成混淆,导致错误。
1.2 获取的方法:
size : 返回对象的尺寸
driver.find_element_by_css_selector("#J_username").size
text : 获取对象的文本
driver.find_element_by_css_selector("a.sendpwd").text
get_attribute(“属性名”):获取对象的属性值
driver.find_element_by_css_selector("#J_username").get_attribute("name")
1.3 判断的三种方法:
is_displayed():用来判断对象是否可见,即css的display属性是否为none
driver.find_element_by_css_selector("#J_username").is_displayed()
is_enabled():判断对象是否被禁用 是否可用
driver.find_element_by_css_selector("#J_username").is_enabled()
is_selected():判断对象是否被选中。
driver.find_element_by_id("head_checkbox").is_selected()
1.4 其他
tag_name:获取对象标签名称
driver.find_element_by_id("head_checkbox").tag_name
location:获取元素坐标
driver.find_element_by_id("head_checkbox").location
1.5 对元素截图 screenshot()
2、鼠标键盘操作
在实际的web产品测试中,对于鼠标的操作,不单单只有click(),有时候
还要用到右击、双击、拖动等操作,这些操作包含在ActionChains类中。(所以先导入类)
from selenium.webdriver.common.action_chains import ActionChains
ActionChains类中鼠标操作常用方法:
⚫ context_click() :右击
⚫ double_click() :双击
⚫ drag_and_drop() :拖动
⚫ move_to_element() :鼠标移动到一个元素上
⚫ click_and_hold() :按下鼠标左键在一个元素上
2.1鼠标右击操作:
mouse.context_click(元素对象).perform()
模拟鼠标点击:
ActionChains(driver).click(元素对象).release(元素对象).perform()
mouse是类的对象
perform是执行的意思
2.2 悬浮 move_to_element()
2.3 长按 click_and_hold() :按下鼠标左键在一个元素上
链条命令,可以写很长
Pause 按住10s
Release 释放 放开
Perform 执行