在 AWS EC2 实例上运行 Selenium 时出现异常

在 AWS EC2 实例上运行 Selenium 时出现异常

当我在 AWS EC2 实例(无头服务器)上使用 Firefox 驱动程序运行 Selenium 测试用例时,遇到了此异常。我安装了 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)”位置:“JS frame :: chrome://browser/content/utilityOverlay.js :: getShellService :: line 339”数据:否]

请问有人能帮助我解决这个异常吗?

答案1

首先安装 xvfb,它将允许您使用“虚拟屏幕”运行它。

sudo yum -y install xorg-x11-server-Xvfb 

那么你应该看看这篇有用的文章,它将帮助你在亚马逊 EC2 上安装 Firefox。这是因为你不能只在 EC2 上执行 sudo yum install firefox。所以,基本上你创建一个文件(我使用了这个要旨) 在他提供的 EC2 实例上,然后运行它来安装 Firefox 及其所有依赖项。 http://joekiller.com/2012/06/03/install-firefox-on-amazon-linux-x86_64-compiling-gtk/

当脚本运行时,它将安装 Firefox

/usr/local/bin/firefox

我默认相信。

安装完成后,您可能需要将其添加到路径中,如上面的链接所述。但是您还应该添加 DISPLAY 系统变量,因此请执行以下操作...

cat << EOF >> ~/.bashrc
PATH=/usr/local/bin:\$PATH
DISPLAY=:99
export PATH
export DISPLAY
EOF

然后您必须启动屏幕 99 的 xvfb,以便它能够在其“虚拟屏幕”上运行 Firefox。就像这样...

Xvfb :99 -screen 0 1024x768x16 &

然后希望当您重新运行 selenium 测试时,它会在路径上找到 Firefox 并在该 EC2 实例上的正确“虚拟化”屏幕中运行它。

附注:我绝不是亚马逊 Linux 领域的任何类型的专家,所以...祝你好运。

或者,您可以研究在 Amazon EC2 ubuntu 微实例上启动 selenium 服务器,您可以轻松设置该实例以具有 GUI。

答案2

无法连接到端口 7055 上的二进制 FirefoxBinary(/opt/firefox/firefox-bin)

您需要升级 Selenium Server(至 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>

看:

相关内容