硒的工作例項

現在我們已經瞭解了 Selenium 的基礎知識,我們可以建立自己的專案。對於這個例子,我們將製作一個程式,它找到關於堆疊溢位的最新問題。

我們開始輕鬆,讓我們開啟堆疊溢位。

public static void main(String[] args) throws InterruptedException {
    System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("https:stackoverflow.com");
    Thread.sleep(3000);
    driver.quit();
}

現在,如果你檢視頁面的來源,你會發現所有問題都是 a 標籤,其 className 為 question-hyperlink。但是,由於存在多個問題,我們使用 ListWebElement 而不是 WebElement。因此,我們可以做到

public static void main(String[] args) throws InterruptedException {
    System.setProperty("webdriver.chrome.driver", "path to chromedriver\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("https:stackoverflow.com");
    List<WebElement> list = driver.findElements(By.className("question-hyperlink"));
}

現在,我們需要獲取 a 標籤的 href 屬性,該標籤具有問題的連結。要做到這一點,我們可以在每個 WebElement 上使用 getAttribute("href"),就像

public static void main(String[] args) throws InterruptedException {
    System.setProperty("webdriver.chrome.driver", "path to chromedriver\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("https:stackoverflow.com");
    List<WebElement> list = driver.findElements(By.className("question-hyperlink"));
    System.out.println(list.size());
    list.forEach(e->System.out.println(e.getAttribute("href")));
    driver.quit();
}

這列印出 Stack-overflow 上的熱門問題的連結。