Selenium使用Xpath定位
应该是不全面的,暂时整理这些,后续补充吧。
1.绝对路径 (/)
格式:driver.find_element_by_xpath("绝对路径")
例子:driver.find_element_by_xpath("/html/body/div[x]/form/input")
x 代表第x个 div标签(索引从1开始)
当页面元素位置发生改变时,都需要修改,因此,不推荐使用 |
2.相对路径 (//)
格式:driver.find_element_by_xpath("//input[x]")
x是索引
例子:driver.find_element_by_xpath("//input[2]")
2.1通过元素的唯一属性定位
例子:driver.find_element_by_xpath("//input[@id='myinput']")
# @后跟属性,可以是任何属性 id/name/title 等
2.2通过父元素的唯一属性定位
例: driver.find_element_by_xpath("//span[@id='input-container']/input")
#目标元素是input,但是它的父元素span具有唯一属性,则可以采用这种方式
2.3通过逻辑表达式定位
and
or
not
driver.find_element_by_xpath("//span[@id='input1' and @title='嘻嘻']")
2.4模糊定位
2.4.1 contains
方法(包含)
driver.find_element_by_xpath("//a[contains(@name,'trnews')]")
2.4.2 start-with
方法(以XX开头)
driver.find_element_by_xpath("//a[start-with(@href,'http')]")
2.4.3 text
方法
driver.find_element_by_xpath("//a[contains(text(),'新闻')]")
查找超链接元素的文本内容
driver.find_element_by_xpath("//*[text()='新闻']")
查找所有内容为新闻二字的元素
参考:https://blog.csdn.net/hou_angela/article/details/80305828 感谢博主