1. 程式人生 > >selenium+Java頁面元素定位方法

selenium+Java頁面元素定位方法

頁面元素定位方法總結

WebDriver物件的findElement函式可以用於定位一個頁面的元素,findElement可以用於定位多個頁面的元素,定位到頁面元素需使用webElement物件進行儲存,以便在測試的過程中繼續使用。

定位方法 java例項
使用id定位 driver.findElement(By.id(“id值”))
使用name定位 driver.findElement(By.name(“name值”))
使用連結的全部文字定位 driver.findElement(By.linkText(“連結的全部文字”))
使用連結的部分文字定位 driver.findElement(By.partialLinkText(“連結的部分文字”))
使用xpath定位 driver.findElement(By.xpath(“xpath定位表示式”))
使用css定位 driver.findElement(By.cssSelector(“css定位表示式”))
使用class名稱定位 driver.findElement(By.className(“class屬性值”))
使用標籤名稱定位 driver.findElement(By.tagName(“html標籤名稱”))
使用jqery定位 js.executeScript(“return jQery.find(‘jQery定位表示式’)”)

使用id定位


> <html> <body>  <label>使用者名稱</lable>   <input id="uname"></input> 
> <label>密碼</lable>   <input id="pwd"></input> <button
> id="submit">登入</button> </body
>
</html>
WebElement uname= driver.findElement(By.id("uname"));
WebElement pwd= driver.findElement(By.id("pwd"));

由於頁面元素的id屬性再當前網頁中是唯一的。所以使用id屬性可以保證頁面元素的唯一性。如果頁面沒有id屬性,無法使用此定位操作。

使用name定位

<html>
<body>
 <label>使用者名稱</lable> 
 <input name="uname"></input>
 <label>密碼</lable> 
 <input name="pwd"></input>
<button name="submit">登入</button>
</body>
</html>
WebElement uname= driver.findElement(By.name("uname"));
WebElement pwd= driver.findElement(By.name("pwd"));

name和id的區別,name屬性在當前的網頁中可以不是唯一的屬性,而 id值必須是唯一的屬性,因此使用name可以定位到等多個元素,還需要進一步才能獲取實施測試操作的唯一頁面元素。

使用連結的全部文字定位

<html>
<body> 
 <a href="http://www.baidu.com">軟體測試搜尋</a> 
</body>
</html>


WebElement link= driver.findElement(By.linkText("軟體測試搜尋"));

使用此方式 定位連結需要完全匹配連結的顯示文字。常用於頁面中存在多個連結文字高度相似的情況,且無法使用部分連結文字進行定位。

使用連結的部分文字定位

<html>
<body> 
 <a href="http://www.baidu.com">搜尋-百度</a> 
 <a href="http://www.sogou.com">搜尋-搜狗</a> 
</body>
</html>


WebElement link= driver.findElement(By.partialLinkText("百度"));
List<WebElement> links= driver.findElements(By.partialLinkText("搜尋"));

使用此方式 定位連結需要完全匹配連結的顯示文字。常用於頁面中存在多個連結文字高度相似的情況,且無法使用部分連結文字進行定位。

使用標籤名稱定位

<html>
<body> 
 <a href="http://www.baidu.com">搜尋-百度</a> 
 <a href="http://www.sogou.com">搜尋-搜狗</a> 
</body>
</html>


WebElement link= driver.findElement(By.tagName("a"));
List<WebElement> links= driver.findElements(By.tagName("a"));

標籤名稱定位方式主要用於匹配多個頁面元素的情況,將查詢的網頁元素物件進行計數、遍歷、修改屬性等操作。

使用class名稱定位

<html>
<body>
 <input class="header" type=text></input>
</body>
</html>

WebElement input= driver.findElement(By.className(“header”));
“`

使用xpath定位

xpath定位方式是自動化測試定位技術中的必殺技,幾乎可以解決所有的定位難題。

  1. 使用絕對路徑來定位元素
  2. 使用相對路徑來定位元素
  3. 使用索引號進行定位
  4. 使用頁面元素的屬性值定位元素
  5. 使用模糊的屬性值定位元素
  6. 使用xpath的軸(axis)進行元素定位
  7. 使用頁面元素的文字定位元素
    使用谷歌瀏覽器或者火狐瀏覽器可以定位頁面的元素