硒的工作实例
现在我们已经了解了 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
。但是,由于存在多个问题,我们使用 List
的 WebElement
而不是 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 上的热门问题的链接。