selenium八大元素定位方式以及其中Xpath定位细节
大多数用xpath
定位有八种
1.id定位:find_element_by_id()
2.name定位:find_element_by_name()
3.class定位:find_element_by_class_name()
4.tag定位:find_element_by_tag_name()
5.link定位:find_element_by_link_text()
6.partial_link定位:find_element_by_partial_link_text()
7.xpath定位:find_element_by_xpath()
8.CSS定位:find_element_by_css_selector()
xpath 的定位方法:
1.方式一通过属性定位://a[@class="toindex"]
2.方式二通过层级+索引定位://div[@id='head']/div/div[2]/a[1] , 注意:索引是从1开始
3.方式三通过层级+属性定位://div[@id='head']/div/div[@id='u']/a[@class='toindex']
xpath定位细节:
1.双斜杠代表下面所有,不管位置://div[@id='head']//a[@class='toindex']
2.属性并列,用and://input[@class="s_ipt" and @name="wd"]
3.用*号省略具体的标签名称,但元素的层级关系必须体现:
//*[@id='J_login_form']/dl/dt/input[@id='J_password']或者
//*[@id='J_login_form']/*/*/input[@id='J_password']
4.xpath的模糊定位方法:
a.用contains关键字:driver.findElement(By.xpath(“//a[contains(@href, logout’)]”))
这句话的意思是寻找页面中href属性值包含有logout这个单词的所有a元素,由 于这个退出按钮的href属性里肯定会包含logout,所以这种方式是可行的,也会经常用到。其中@后面可以跟该元素任意的属性名。
b.用start-with:driver.findElement(By.xpath(“//a[starts-with(@rel, ‘nofo’)]))
这种方式一般用于知道超链接上显示的部分或全部文本信息时,可以使用。
这句的意思是寻找rel属性以nofo开头的a元素。其中@后面的rel可以替换成元素的任意其他属性
c.用Text关键字:driver.findElement(By.xpath(“//a[contains(text(), ’退出’)]));
直接查找页面当中所有的退出二字,根本就不用知道它是个a元素了。这种方法也经常用于纯文字的查找
d.如果知道超链接元素的文本内容,也可以用://a[contains(text(), ’退出’)]
5.XPath 关于网页中的动态属性的定位,例如,ASP.NET 应用程序中动态生成 id 属性值,可以有以下四种方法:
a.starts-with 例子: input[starts-with(@id,'ctrl')] 解析:匹配以 ctrl开始的属性值
b.ends-with 例子:input[ends-with(@id,'_userName')] 解析:匹配以 userName 结尾的属性值
c.contains() 例子:Input[contains(@id,'userName')] 解析:匹配含有 userName 属性值
本文来自博客园,作者:思涵么么哒,转载请注明原文链接:https://home.cnblogs.com/u/lu-en

浙公网安备 33010602011771号