XPath定位+web UI元素汇总
1、XPath 定位(一旦页面结构发生改变,绝对路径也随之失效,必须重新。 所以不推荐使用绝对路径的写法)
相对路径定位://input[@value="查询"] 查找value="查询"的input元素 索引号定位://input[2] 查找页面中第三个input元素,下标从0开始 页面属性定位://img[@alt='div1-img1'] 查找alt='div1-img1'的img元素 starts-with关键字模糊定位://img[starts-with(@alt,'div')] 查找alt属性从div开始的img元素 contains关键字模糊定位://img[contains(@alt,'g1')] 查证alt属性包含'g1'的img元素 text()函数 文本定位://*[text()='百度搜索'] 查找所有文本为“百度搜索的元素” //a[contains(text(),'搜索')] 查证所有文本为“搜索”的超链接
2、元素汇总
driver.findElement(By.id()) 根据id获取元素
driver.findElement(By.name()) 根据name获取元素
driver.findElement(By.className()) 根据class name获取元素
driver.findElement(By.tagName()) 根据标签获取元素,例如input
driver.findElement(By.linkText()) 根据标签文本获取元素
driver.findElement(By.partialLinkText()) 根据标签文本模糊查询获取元素
driver.findElement(By.xpath())
driver.findElement(By.cssSelector()) 根据css路径获取元素
clear() 清楚元素内容
sendKeys() 模拟按键输入
click() 点击
submit() 提交表单
/xxx 选取根节点xxx
/xxx/yyy 根据绝对路径选择元素
//xxx 整个文档扫描,找到所有xxx元素
//xxx/yyy 所有父元素为xxx的yyy元素
. 选取当前节点的父元素节点
.. 选取父元素地址
//xxx[@id] 选取所有xxx元素中有id属性的元素
//xxx[@id=yyy] 选取所有xxx元素id属性为yyy的元素
//*[count(xxx)=2] 统计xxx元素个数=2的节点
//*[local-name()='xxx'] 找到tag为xxx的元素
//*[starts-with(local-name(),'x')] 找到所有tag以x开头的元素
//*[contains(local-name(),'x')] 找到所有tag包含x的元素
//*[string-length(local-name())=3] 找到所有tag长度为3的元素
//xxx | //yyy 多个路径查找
context_click 右击事件
double_click 双击事件
drag_and_drop 拖动
move_to_element() 鼠标停在一个元素上
click_and_hole 按下鼠标左键在一个元素上
from selenium.webdriver.common.keys import Keys
send_keys(Kyes.BACK_SPACE) 退格键
send_keys(Kyes.CONTRL,'a') 全选
send_keys(Kyes.CONTRL,'v') 粘帖
send_keys(Kyes.CONTRL,'c') 复制
send_keys(Kyes.CONTRL,'x') 剪切
send_keys(Kyes.ENTER) 回车
from selenium.webdriver.support.ui import WebDriverWait
implicitly_wait() 设置webdriver等待时间
WebDriverWait 等待条件满足或超时后退出