1,Selenium 定义

Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。【引用百度百科】

2,Selenium怎么实现获取网页数据?

1,准备

谷歌浏览器【版本:81.0.4044.113】,IDEA,chromdriver【谷歌驱动器 版本:81.0.4044.69(选择与谷歌浏览器对应的版本,这个很重要)】

2,依赖

  1. <dependency>
  2. <groupId>org.seleniumhq.selenium</groupId>
  3. <artifactId>selenium-server</artifactId>
  4. <version>3.141.59</version>
  5. </dependency>

3,配置相关路径

  1. //chrome启动文件路径
  2. String chromebin = "C:/XXX/chrome.exe";
  3. //chromedriver文件路径
  4. String chromedriver = "D:/XXX/chromedriver.exe";


4,页面分析

举例:浏览器打开链接[http://www.liebiao.com/] —> F12 —>
Selenium 获取网页数据 - 图1
—> 点到Elements li元素,右键copy - Copy XPath —> /html/body/div[2]/div[2]/ul/li[1] 【获得对应的元素】

5,获取元素

  1. 示例代码:
  2. public static void main(String[] args) {
  3. //chrome启动文件路径
  4. String chromebin = "C:/XXX/chrome.exe";
  5. //chromedriver文件路径
  6. String chromedriver = "D:/XXX/chromedriver.exe";
  7. /* 设定 chrome启动文件的位置, 若未设定则取默认安装目录的 chrome */
  8. System.setProperty("webdriver.chrome.bin", chromebin);
  9. /* 设定 chrome webdirver 的位置 ,若未设定则从path变量读取*/
  10. System.setProperty("webdriver.chrome.driver", chromedriver);
  11. //创建webdriver
  12. WebDriver webDriver = new ChromeDriver();
  13. // 开启浏览器 跳转指定地址
  14. webDriver.get("http://www.liebiao.com/");
  15. // 获取li集合
  16. List<WebElement> liElemList = webDriver.findElements(By.xpath("/html/body/div[2]/div[2]/ul/li"));
  17. // 遍历li集合,获取a标签的text值,并输出
  18. for (WebElement liElem : liElemList) {
  19. String aText = liElem.findElement(By.tagName("a")).getText();
  20. System.out.println(aText);
  21. }
  22. //单纯关闭tab
  23. webDriver.close();
  24. }


宁静致远,天道酬勤。
书上得来终觉浅,绝知此事要躬行。