定位界面元素的常用方法

2017年12月7日14:24:52
  • A+
所属分类:XPath

谷歌浏览器

XPath 快捷键F12

 

 

 

火狐浏览器

firebug(附加组件)快捷键F12

Firefinder 插件验证xpath正确性

 

 

 

IE   快捷键F12

 

 

 

 

  • 常用的定位元素有  

 

ID

Name

ClassName(即class = XXX

TagName,一般会返回多个,故一般使用findElements()

 

LinkText(即连接的文本)

<a style="color:#FF3300" cid="40615494" class="adfixed" target="_blank" href="http://www.duba.net/dbt/wannacry.html?f=dh">勒索病毒免疫与修复

 

By.linkText("勒索病毒免疫与修复");

 

PartialLinkText (部分连接文档)

CSS

Xpath

jQuery js.executeScript("return.jQuery.find('jQuery表达式')")

 

  • 没有获取窗口焦点也可以使用webdriver操作浏览器

 

 

 

  1. id(id)
  2. name
  3. className(className))   class
  4. cssSelector(selector)         ·
  5. linkText(linkText)
  6. name(name)
  7. partialLinkText(linkText)
  8. tagName(name)         标签名
  9. xpath(xpathExpression)

 

 

 

注意:selenium-webdriver通过findElement()\findElements()等find方法调

用"By"对象来定位和查询元素。By类只是提供查询的方式进行分类。

findElement返回一个元素对象否则抛出异常,findElements返回符合条件的元素List,如果不存在符合条件的就返回一个空的list。

多个属性值 xpath

<Books>

<book author="John" year="2009" language="En">Hello</book>

<book author="John" year="2010" language="En">Bye</book>

<book author="John" year="2009" language="Chs">Good</book>

<book author="Mike" year="2009" language="En">Thanks</book>搜索

</Books>

 

Books/book[@author='John' and @year='2009' and @language='En']

使用模糊的属性值定位

 

//img[starts-with(@id,'div1')] 查找图片的alt属性开始位置包含"div1"关键字的页面元素

 

contains

end-with

 

使用页面元素的文本来定位

 

//a[text()='百度']

//p[contains(text(),'百度')]

By.xpath("//input[start-with(@id,'nice')
       By.xpath("//input[ends-with(@id,'很漂亮')
       By.xpath("//input[contains(@id,'那么美')]")
       By.xpath("//input[contains(text(),'那么美')]")

 

http://blog.csdn.net/boer521314/article/details/40923821

selenium使用Xpath定位之完整篇

 

其中有一片文章提到了xpath元素定位,但是该文章中有些并不能适应一些特殊与个性化的场景。在文本中提供xpath元素的定位终极篇,你一定能在这里找到你需要的解决办法。

第一种方法:通过绝对路径做定位(相信大家不会使用这种方式)

 

 

1

By.xpath("html/body/div/form/input")

来自CODE的代码片

xpath1.java

 

第二种方法:通过相对路径定位(大家最常使用的方式)

 

 

By.xpath("//input")

来自CODE的代码片

xpath2.java

 

第三种方法:通过元素索引定位

 

 

By.xpath("//input[4]")

来自CODE的代码片

xpath2.java

 

第四种方法:使用xpath属性定位(结合第2、第3中方法可以使用)

 

By.xpath("//input[@id='kw1']")

By.xpath("//input[@type='name' and @name='kw1']")

来自CODE的代码片

xpath4.java

 

[java] view plain copy

<span style="margin:0px; padding:0px; color:rgb(0,153,0)"></span>

第五种方法:使用部分属性值匹配(最强大的方法)

 

By.xpath("//input[start-with(@id,'nice')

By.xpath("//input[ends-with(@id,'很漂亮')

By.xpath("//input[contains(@id,'那么美')]")

来自CODE的代码片

xpath5.java

[java] view plain copy

 

[java] view plain copy

<span style="margin:0px; padding:0px; color:rgb(0,153,0)"></span>

 

 

第6种方法:使用xpath轴(未曾使用)

 

希望,以上这些方法,能够帮助到你。

 

 

 

 

 

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: