WebDriver,java元素定位

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元素的一个属性。可以定位一个元素,也可以同时定位多个元素。
    例:
新闻
地图

java:

List list = driver.findElements(By.className("mnav"));
  1. By tag name
    通过页面元素的tag来定位元素。
    例:

java:

WebElement element = driver.findElement(By.tagName("iframe"));
  1. By name
    直接使用name来定位。
    例:

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

cheese>

java:

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

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

search for cheese>

java:

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

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

milkcheese

java:

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

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



java:

List 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元素定位)