如何在后台运行selenium webdriver?

时间:2014-09-24 13:57:11

标签: java selenium selenium-webdriver webdriver

我已经使用Selenium两周了。

到目前为止,它确实很有用。

开发时,我喜欢弹出浏览器,这样我就可以看到发生了什么,但在生产中,我不希望服务器继续打开和关闭Firefox窗口。我浏览了这个论坛,完成了Google搜索等工作,但无法找到在后台运行浏览器的方法。

有人提示如何做到这一点吗?

6 个答案:

答案 0 :(得分:3)

尝试PhantomJS,它是一个无头浏览器webkit。 HTMLUnit 也类似于PhantomJs;但是,强烈建议使用PhamtomJs。

PhantomJs 使用Google chrome's JavaScript Engine但没有GUI。

参考:http://phantomjs.org/

答案 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作为平台)

  1. 安装xvfb(apt-get install xvfb)
  2. 然后您可以使用以下命令运行selenium / firefox“headless”(假设Linux): -
  3. DISPLAY =:1 xvfb-run java -jar [selenium JAR filename]

    现在,当您的测试套件启动selenium时,它将使用Firefox运行而不会弹出浏览器窗口。

答案 5 :(得分:0)

您是否考虑过反对Selenium Grid?见https://code.google.com/p/selenium/wiki/Grid2