【问题标题】:How to run selenium webdriver in the background?如何在后台运行 selenium webdriver?
【发布时间】:2014-09-24 13:57:10
【问题描述】:

我已经使用 Selenium 2 周了。

到目前为止,它真的很有用。

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

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

【问题讨论】:

    标签: java selenium selenium-webdriver webdriver


    【解决方案1】:

    为 JAVA Seleniun Google Chrome 找到了简单的解决方案

        System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
        ChromeOptions options = new ChromeOptions();
        options.addArguments("headless");
        return new ChromeDriver(options);
    

    【讨论】:

    • 很棒,简单的方法。
    【解决方案2】:

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

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

    参考:http://phantomjs.org/

    【讨论】:

      【解决方案3】:

      如果服务器在 linux 上,您可以使用 Xvfb 分配一个显示器来运行 selenium 以创建虚拟显示器

      如果服务器在 Windows 上,您可以注册守护程序以作为登录用户以外的其他用户运行,从而为服务提供桌面。这仅适用于本地系统管理员帐户or by registry tweaking as detailed here 请注意,您必须为运行该服务的用户设置 Internet Explorer 属性

      【讨论】:

        【解决方案4】:

        试一试:https://github.com/detro/ghostdriver.

        它使用无头方法来自动化网站。

        【讨论】:

          【解决方案5】:

          Phantom 是不错的无头选项,但假设您想坚持使用与您正在使用的工具相同的工具......(以下假设 Linux 为平台)

          1. 安装 xvfb (apt-get install xvfb)
          2. 然后您可以使用以下命令运行 selenium/firefox“headless”(假设是 Linux):-

          DISPLAY=:1 xvfb-run java -jar [selenium JAR 文件名]

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

          【讨论】:

            【解决方案6】:

            您是否考虑过使用 Selenium Grid 来代替?见https://code.google.com/p/selenium/wiki/Grid2

            【讨论】:

              猜你喜欢
              • 2018-10-25
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-12-28
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多