我需要在Java中使用selenium chrome驱动程序进行测试。但是不应该打开镀铬窗口。假设这是一个产品,不应打开任何窗口。
我也看过这个; Is it possible to hide the browser in Selenium RC? 但对我来说没有解决方案。测试应该是独立于操作系统的,我已经尝试过HtmlUnitDriver进行测试而不打开任何窗口,但它有一些问题。当通过id查找组件时,它可能无法通过id找到组件。有些服务器可能会根据浏览器发送组件ID,我不知道应该用什么ID来测试。
因为我正在尝试使用chrome驱动程序。
有没有办法使用chromedriver而无需打开镀铬窗口或其他方式进行测试而不用Java中的Selenium打开任何窗口?
感谢!
答案 0 :(得分:6)
使用PhantomJS,但如果需要在chromedriver中运行它们并且您拥有资源,则此博客在running headless selenium with chrome上有一个很好的食谱。要求您下载以下内容......
如果您计划将来实施Jenkins或任何其他CI,我强烈建议您使用PhantomJS。
答案 1 :(得分:2)
GhostDriver and PhantomJS应该让你做你想做的事。
答案 2 :(得分:1)
在selenium web驱动程序中有无头模式。所以在无头模式下,您可以在不打开Web浏览器的情况下进行自动化。您也可以在无gui系统中部署应用程序
ChromeOptions options = new ChromeOptions();
// setting headless mode to true.. so there isn't any ui
options.setHeadless(true);
// Create a new instance of the Chrome driver
WebDriver driver = new ChromeDriver(options);
答案 3 :(得分:0)
我喜欢这个article。
基本上你需要在pom中添加PhantomJS依赖(我喜欢maven用于依赖管理):
<dependency>
<groupId>com.github.detro.ghostdriver</groupId>
<artifactId>phantomjsdriver</artifactId>
<version>1.1.0</version>
</dependency>
并运行代码
System.setProperty( "phantomjs.binary.path", "c:\\path\\to\\phantomjs-1.9.8-windows\\phantomjs.exe" );
WebDriver driver = new PhantomJSDriver();
driver.get("http://www.google.com");
driver.quit();
它适用于我的版本:
答案 4 :(得分:0)
使用 Java,您可以使用 JSOUP 库,然后使用 selenium 检查文档。
Document doc = Jsoup.connect("PUT THE LINK")
.userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36")
.get();
然后,使用 selenium,你可以做一些类似的事情:doc.getElementByClassName
等等。