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