1

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

我有一个 Ubuntu 桌面盒,我想通过 Selenium 运行测试。所以我安装了最新的 Selenium Standalone 服务器(selenium-server-standalone-2.21.0.jar)。我可以启动服务器的交互式会话并让 Firefox 按照此处的示例运行,但针对我的 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 只是将命令传递给服务器,因此在我看来,无论是否处于交互模式,服务器都会拥有相同的用户,因此应该没有权限问题。

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

任何帮助是极大的赞赏。

4

2 回答 2

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/

于 2012-05-18T14:37:18.303 回答
0

将您的命令更新为:

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并查看可用的远程代理。现在,当您运行测试时,它应该可以工作了。

于 2012-05-17T19:07:50.577 回答