美文网首页软件测试
WebDriver,java元素定位

WebDriver,java元素定位

作者: 宅四 | 来源:发表于2017-10-18 14:06 被阅读0次

WebDriver定位网页元素可以通过“Find Element”和“Find Elements”来完成。“Find Element” 会返回与查询匹配的WebElement对象,如果找不到,会抛出异常。“Find Elements”会返回WebElements的列表,如果没有DOM元素与查找匹配,则可能为空。
“Find”方法,通过“By”来查找或者定位对象。以下是定位方法:

  1. By id
    通过id来定位是最有效的方法。不过在某些情况下,id并不是唯一的,有可能是自动生成的,这种情况下就不应使用。
    例:
< input id ="kw" />

java:

WebElement element = driver.findElement(By.id("kw"));
  1. By class name
    class 是DOM元素的一个属性。可以定位一个元素,也可以同时定位多个元素。
    例:
<a class="mnav" href =" http://news.baidu.com/">新闻</a>
<a class="mnav" href =" http://map.baidu.com/">地图</a>

java:

List<WebElement> list = driver.findElements(By.className("mnav"));
  1. By tag name
    通过页面元素的tag来定位元素。
    例:
<iframe id = "box_taobao1" width="238"></iframe>

java:

WebElement element = driver.findElement(By.tagName("iframe"));
  1. By name
    直接使用name来定位。
    例:
<input name="cheese" type="text'/>

java:

WebElement element = driver.findElement(By.name("cheese"));

5.By Link Text
也可以通过链接的文本来定位元素。

<a href="http://www.google.com/search?q=cheese">cheese</a>>

java:

WebElement element = driver.findElement(By.linkText("cheese"));

6.By Partial Link Text
通过部分链接文本匹配也可以定位元素。
例:

<a href="http://www.google.com/search?q=cheese">search for cheese</a>>

java:

WebElement cheese = driver.findElement(By.partialLinkText("cheese"));

7.By css
可以使用css来定位元素,可以去w3c css selectors 网站去查看可以使用的css selectors的列表。下面给出一个例子:

<div id="food"><span class="dairy">milk</span><span class="dairy aged">cheese</span></div>

java:

WebElement cheese = driver.findElement(By.cssSelector("#food span.dairy.aged"));

8.By XPath
XPath是XML Path的简称。

<input type="text" name="example" />
<INPUT type="text" name="other" />

java:

List<WebElement> inputs = driver.findElements(By.xpath("//input"));

关于css selector和XPath之后会单独写,关于元素定位,详情请参考:
http://docs.seleniumhq.org/docs/03_webdriver.jsp
https://www.w3.org/TR/css3-selectors/

相关文章

网友评论

    本文标题:WebDriver,java元素定位

    本文链接:https://www.haomeiwen.com/subject/qvzsuxtx.html