1.环境:jdk1.8
2.selnium简介:
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge等。这个工具的主要功能包括:测试与浏览器的兼容性——测试应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成.Net、Java、Perl等不同语言的测试脚本(来源:百度百科)
3.实例代码:
ChromeOptions OPTIONS =new ChromeOptions();
OPTIONS.addArguments("--no-sandbox");
WebDriver driver = new ChromeDriver(OPTIONS);
driver.get("https://www.kdocs.cn/view/l/sa1XFpAYtsZn");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
driver.switchTo().frame(driver.findElement(By.id("my-ckt-iframe")));
driver.findElement(By.id("icon-download")).click();
driver.close();
注意事项:
1.获取元素时,要确认其是否在iframe中若在iframe中需先进入iframe,否则会报元素找不到
2.进行点击事件时,要确认元素是否绑定有事件,否则会报元素无法交互的错误(element not interactable)
3.在实际的使用过程中,出现了页面元素存在,但是未能找到元素的情况,该问题的原因可能为在抓取对应元素时,页面还未进行渲染,所以程序无法找到对应的元素。个人的解决方法:设置一个睡眠时间,使得在抓取对应元素时,有足够的渲染时间。
4.在一个页面的操作完全结束后,需要将该浏览器对象进行关闭,即driver.close()方法,在实际使用中出现了循环抓取不同页面中的内容,但是程序未将无用的窗口对象关闭,导致了内存溢出,电脑卡死的情况。
3.相应jar包下载地址如下(本人使用版本:3.9.1):http://selenium-release.storage.googleapis.com/index.html?path=3.9/