当我使用AWS EC2实例(这是无头服务器)上的Firefox驱动程序运行Seleniumtesting用例时,我正面临着这个exception。 我安装了Firefox及其所有必要的更改
org.openqa.selenium.WebDriverException:org.openqa.selenium.WebDriverException:端口7055无法连接到二进制FirefoxBinary(/ opt / firefox / firefox-bin); 过程输出如下:?*** *** e = [Exception …“组件返回失败代码:0x80570016(NS_ERROR_XPC_GS_RETURNED_FAILURE)[nsIJSCID.getService]”nsresult:“0x80570016(NS_ERROR_XPC_GS_RETURNED_FAILURE)”location:“JS frame :: chrome: //browser/content/utilityOverlay.js :: getShellService :: line 339“data:no]
请任何人都可以帮助我这个例外?
首先安装xvfb,它将允许你用“虚拟屏幕”来运行它。
sudo yum -y install xorg-x11-server-Xvfb
那么你应该看看这个有用的文章,这将有助于你在亚马逊EC2上安装Firefox。 这是因为你不能只做sudo yum在EC2上安装firefox。 所以,基本上你在他提供的EC2实例上创build一个文件(我使用了这个要点 ),然后运行它来安装firefox及其所有依赖项。 http://joekiller.com/2012/06/03/install-firefox-on-amazon-linux-x86_64-compiling-gtk/
脚本运行时会安装firefox
/usr/local/bin/firefox
我相信。
一旦它已经安装了,你可能需要将它添加到你的path,上面的链接也解释了。 但是你也应该添加DISPLAY系统variables,所以做这样的事情…
cat << EOF >> ~/.bashrc PATH=/usr/local/bin:\$PATH DISPLAY=:99 export PATH export DISPLAY EOF
然后你必须启动屏幕99的xvfb所以它将能够运行它的“虚拟屏幕”的Firefox。 像这样…
Xvfb :99 -screen 0 1024x768x16 &
然后希望当你重新运行你的seleniumtesting时,它会在path上findfirefox,并在EC2实例的正确“虚拟化”屏幕上运行它。
作为一个方面说明 – 我不是任何方式在亚马逊的Linux的任何types的专家,所以… Goodluck。
或者,你可以调查运行selenium服务器,你可以启动一个亚马逊EC2 Ubuntu的微型实例,你可以很容易地设置有一个GUI。
无法连接到端口7055上的二进制FirefoxBinary(/ opt / firefox / firefox-bin)
您需要升级您的Selenium服务器(到2.53.x),以便它可以支持您的较新版本的Firefox。 或者使用另一个webdriver(如Chrome)。
如果您使用的是Maven,请在pom.xml使用这些行:
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>2.53.1</version> <scope>test</scope> </dependency>
看到: