網站自動化測試:如何取得網頁所有的連結文字

網站自動化測試:如何取得網頁所有的連結文字

這篇文章主要說明,如何自動取得網頁上所有的連結與連結的文字。

什麼情境會需要取得這些資訊?例如要驗證所有的連結,

例如要驗證所有網頁的文字翻譯的狀況等。最後我們用一個程式範例實作。

 

測試情境

假設我們要掃過整各網站的 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]

Leave a Reply

Your email address will not be published. Required fields are marked *