網站自動化測試:如何取得網頁所有的連結文字
這篇文章主要說明,如何自動取得網頁上所有的連結與連結的文字。
什麼情境會需要取得這些資訊?例如要驗證所有的連結,
例如要驗證所有網頁的文字翻譯的狀況等。最後我們用一個程式範例實作。
測試情境
假設我們要掃過整各網站的 URL並且印出每個 URL 的文字。要如何進行?
這裡我們用 Yahoo News 為例子,http://news.yahoo.com
程式說明
這邊主要用到的程式技巧就是: findElements ,多一個“s”會將所有符合條件找到的原件都傳回存放到一個 list 中。
因此我們要另外用一個 List要存放結果
java.util.List<WebElement> links = driver.findElements(By.tagName(“a”));
之後針對這個 list,就可以用for 迴圈將 list裡面所有的值都讀取完畢,把連結的文字印出來。
links.get(i).getText()
程式範例
[pastacode lang=”java” message=”Selenium Get all URL” highlight=”” provider=”manual”]
package mySelenium;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
public class getAllLinks {
public static void main(String[] args){
WebDriver driver = new FirefoxDriver();
driver.get("http://news.yahoo.com");
java.util.List<WebElement> links = driver.findElements(By.tagName("a"));
System.out.println("Number of Links in the Page is " + links.size());
for (int i = 1; i<=links.size(); i=i+1) {
System.out.println("Name of Link# " + i + links.get(i).getText());
}
}
}
[/pastacode]