【发布时间】:2014-09-24 13:57:10
【问题描述】:
我已经使用 Selenium 2 周了。
到目前为止,它真的很有用。
在开发时,我喜欢让浏览器弹出,这样我就可以看到发生了什么,但在生产中,我不希望服务器一直打开和关闭 Firefox 窗口。我浏览了这个论坛,完成了谷歌搜索等,但找不到在后台运行浏览器的方法。
有人有关于如何做到这一点的提示吗?
【问题讨论】:
标签: java selenium selenium-webdriver webdriver
我已经使用 Selenium 2 周了。
到目前为止,它真的很有用。
在开发时,我喜欢让浏览器弹出,这样我就可以看到发生了什么,但在生产中,我不希望服务器一直打开和关闭 Firefox 窗口。我浏览了这个论坛,完成了谷歌搜索等,但找不到在后台运行浏览器的方法。
有人有关于如何做到这一点的提示吗?
【问题讨论】:
标签: java selenium selenium-webdriver webdriver
为 JAVA Seleniun Google Chrome 找到了简单的解决方案
System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("headless");
return new ChromeDriver(options);
【讨论】:
试试 PhantomJS,它是一个无头浏览器 webkit。 HTMLUnit 也类似于 PhantomJs;但是,强烈建议使用 PhamtomJs。
PhantomJs 使用 Google chrome's JavaScript Engine 但没有 GUI。
【讨论】:
如果服务器在 linux 上,您可以使用 Xvfb 分配一个显示器来运行 selenium 以创建虚拟显示器
如果服务器在 Windows 上,您可以注册守护程序以作为登录用户以外的其他用户运行,从而为服务提供桌面。这仅适用于本地系统管理员帐户or by registry tweaking as detailed here 请注意,您必须为运行该服务的用户设置 Internet Explorer 属性
【讨论】:
试一试:https://github.com/detro/ghostdriver.
它使用无头方法来自动化网站。
【讨论】:
Phantom 是不错的无头选项,但假设您想坚持使用与您正在使用的工具相同的工具......(以下假设 Linux 为平台)
DISPLAY=:1 xvfb-run java -jar [selenium JAR 文件名]
现在,当您的测试套件启动 selenium 时,它将使用 Firefox 运行,而不会弹出浏览器窗口。
【讨论】:
您是否考虑过使用 Selenium Grid 来代替?见https://code.google.com/p/selenium/wiki/Grid2
【讨论】: