硒的工作实例

现在我们已经了解了 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 上的热门问题的链接。