selenium+Java頁面元素定位方法
阿新 • • 發佈:2019-01-25
頁面元素定位方法總結
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定位方式是自動化測試定位技術中的必殺技,幾乎可以解決所有的定位難題。
- 使用絕對路徑來定位元素
- 使用相對路徑來定位元素
- 使用索引號進行定位
- 使用頁面元素的屬性值定位元素
- 使用模糊的屬性值定位元素
- 使用xpath的軸(axis)進行元素定位
- 使用頁面元素的文字定位元素
使用谷歌瀏覽器或者火狐瀏覽器可以定位頁面的元素