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元素的一個屬性。可以定位一個元素,也可以同時定位多個元素。
    例:
<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 >cheese</a>>

java:

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

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

<a >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("http://input"));

關于css selector和XPath之后會單獨寫,關于元素定位,詳情請參考:
http://docs.seleniumhq.org/docs/03_webdriver.jsp
https://www.w3.org/TR/css3-selectors/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容