selenium之xpath使⽤
XPath即XML路径语⾔,⽀持从xml或html中查元素节点,使⽤XPath完全可以替代其他定位放式,如:
find_element_by_xpath('//*[@id=""]')等同于find_element_by_id("")
find_element_by_xpath('//*[@name=""]')等同于find_element_by_name("")
find_element_by_xpath('//*[@class=""]')等同于find_element_by_class_name("")
find_element_by_xpath('//标签名')等同于find_element_by_tag_name("标签名")
find_element_by_xpath('//a[contains(text(),"")]')等同于find_element_by_link_text("")
find_element_by_xpath('//*[@id=""]')等同于find_element_by_partial_link_text("")
需要通过⼀组元素或分层定位的也可以直接使⽤XPath直接定位到
从浏览器复制出的XPath有可能不靠谱,所以我们要学会XPath的语法
路径
/绝对路径: /html/body/div
//相对路径: //div/form //*/form 路径中可以使⽤ *代表任意标签
.当前路径: //div/form/. 等同于//div/form
..上级路径: //div/form/.. 等同于//div
索引
从1开始: /html/body/div[2] //div[1]/form
属性
@属性名:定位包含特定属性名的标签, 如//input[@class]
@属性名="属性值":定位特定属性名=属性值的标签,如//input[@id="kw"]
@*="属性值":定位任意属性名=属性值的标签, 如 //input[@*='kw']
多属性结合定位://input[@id="kw" and @class='kw-class']或//input[@id="kw"][@class="kw-class"] (and处也⽀持使⽤or,表⽰或)
函数
selenium怎么使用text():标签中的⽂本值,如//a[text()="百度⾸页⾛起~"]
contains(): 包含,如//a[contains(text(), "百度⾸页")]
starts-with(): 以**开头,如//a[starts-with(text(), "百度"]
last(): 最后⼀个, 如//div[last()]
轴
parent: ⽗标签
child:⼦标签
following: 后⾯的,如://*[text()="⽤户名"]/following::input[1] # 紧邻⽂本为⽤户名的输⼊框
preceding:前⾯的
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论