【问题标题】:Selenium Standalone Server won't launch Firefox except in interactive mode (Ubuntu, PHP, Selenium and php-webdriver-bindings-0.9.0)Selenium Standalone Server 不会启动 Firefox,除非在交互模式下(Ubuntu、PHP、Selenium 和 php-webdriver-bindings-0.9.0)
【发布时间】:2012-05-16 06:22:13
【问题描述】:

我想这是我不知道启动 Selenium 独立服务器的正确开关组合的情况,但这里是……

我有一个 Ubuntu 桌面盒,我想通过 Selenium 在其上运行测试。所以我安装了最新的 Selenium Standalone 服务器(selenium-server-standalone-2.21.0.jar)。我可以启动服务器的交互式会话并让 Firefox 按照示例 here 运行,但针对我的 Selenium 版本和我的 firefox 路径(即 /usr/bin/firefox)进行了修改。

当我以非交互模式启动服务器时,如下所示:

java -jar /usr/lib/selenium/selenium-server-standalone-2.21.0.jar -port 4444 > /var/log/selenium/selenium-output.log 2> /var/log/selenium/selenium-error.log & echo $! > /tmp/selenium.pid

然后我得到所有正确的反馈,表明服务器正在运行。但是,当我尝试从 php-webdriver-bindings-0.9.0 运行 example.php (修改为删除对“Internet Explorer”的引用)时,它会失败,因为 Firefox 从未启动。绝对没有从 example.php 返回到我的浏览器,但我可以看到服务器正在执行命令(尽管添加了 ini_set("display_errors",1); 和 error_reporting(E_ALL); 到文件顶部)。此外,错误和输出日志没有显示任何错误,只是来自服务器启动的简单状态消息。

由于 PHP 只是将命令传递给服务器,在我看来,无论是否处于交互模式,服务器都会拥有相同的用户,因此应该没有权限问题。

我最终想为大规模操作设置一个网格,但现在我真的很想让这台服务器正常工作。

非常感谢任何帮助。

【问题讨论】:

    标签: ubuntu selenium


    【解决方案1】:

    目前这对我有用:http://dionysus.uraganov.net/software/how-to-install-selenium-server-with-firefox-on-ubuntu-11-10/

    更新:

    好的。上面的链接是我第一次尝试设置 ci 环境。现在我有了这个启动命令,这工作正常!

    ci 服务器

    Xvfb -fp /usr/share/fonts/X11/misc/ :22 -screen 0 1024x768x16 2>&1 &  
    export DISPLAY=:22  
    java -jar /usr/lib/selenium/selenium-server-standalone.jar -role hub -multiWindow -browserSessionReuse -timeout 30000 -forcedBrowserModeRestOfLine "*firefox /usr/lib/firefox-9.0.1/firefox" 2>&1 &
    

    任何工人

    java -jar /usr/lib/selenium/selenium-server-standalone.jar -role webdriver -hub http://[server-ip]:4444/grid/register -port 5555 -browser browserName=firefox,platform=LINUX,maxInstances=5
    

    后续步骤
    更多浏览器,selenium 和 xvfb 的启动脚本。对于 selenium,有两个资源:
    https://github.com/feniix/selenium-grid-startup
    http://www.danstraw.com/installing-selenium-server-2-as-a-service-on-ubuntu/2010/09/23/

    【讨论】:

    • 是的,我相信这就是我在原始问题中提到的示例。一,它不设置集线器。还有两个我不想每次都手动输入命令,所以我把它放到 /etc/init.d/selenium 的脚本中。如上所述,在交互模式下,我可以启动 Firefox 浏览器(当我将路径更改为适合我的机器时)。但这需要在启动时通过正确的 Firefox 路径自行启动(最终 Chrome 也是如此,但可以等待)。
    【解决方案2】:

    将您的命令更新为:

    java -jar /usr/lib/selenium/selenium-server-standalone-2.21.0.jar -role hub
    

    然后您需要为 webdriver 角色启动另一个实例。比如:

    java -jar /usr/lib/selenium/selenium-server-standalone-2.21.0.jar -role webdriver -hub http://127.0.0.1:4444/grid/register -port 5555 -browser browserName=firefox,platform=LINUX,maxInstances=5
    

    现在您应该可以访问http://127.0.0.1:4444/grid/console 并查看可用的远程代理。现在,当您运行测试时,它应该可以工作了。

    【讨论】:

    • 我已将这些行添加到 /etc/init.d/selenium 文件中,并且网格似乎正在工作。 127.0.0.1:4444/grid/console 仅显示 Grid Hub 2.21.0(标题)和查看配置(链接),但它没有给出我重新启动机器之前的 403 错误。但是,当我使用 localhost 或 192.168.1.70(其 LAN IP)和端口 4444 或 5555 运行 example.php 时,它们都返回 101 错误(“连接重置”)。同样,日志没有显示任何有用的信息。
    • 哎呀,找到了一个地方,我从中复制脚本的那个人将 4443 留在了端口中,脚本逻辑正在执行他的 java 命令以及我的新命令。再次重启机器。我现在收到有关支持 5 个 Firefox 实例的网格的消息。仍然收到 101 消息。
    • 当我转到 192.168.1.70:5555/wd/hub 时,我看到一个用于创建和刷新会话的漂亮小屏幕。当我尝试创建一个 firefox 会话时,我要等很长时间才回来告诉我它不能创建一个新会话。我注意到错误显示“AbstractConnector:Started SocketConnector@0.0.0.0:4444”显然机器的 IP 不是 0.0.0.0 - 这可能是问题吗?
    • 奇怪的是,Apache 服务器在上次重新启动后停机。所以我什至无法访问基本的 PHP 页面——这就是我发现的。一旦我启动 Apache,101 错误就消失了。我最初认为它必须运行才能看到192.168.1.70:5555/wd/hub,但显然不是。但是启动 Apache 并没有解决问题,我仍然无法启动会话...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 2019-06-27
    • 2016-11-28
    • 2014-12-31
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多