1

我一直在努力在云中设置 Selenium Grid2,现在我遇到了一个我无法弄清楚的错误。

Selenium::WebDriver::Error::UnknownError: Unable to connect to host 127.0.0.1 on port 7057 after 45000 ms. Firefox console output:
  Error: no display specified
  Error: no display specified

我已经启动了两个节点 - Hub 和 WebDriver

java -jar selenium-server-standalone-2.32.0.jar -role hub -port 7055
java -jar selenium-server-standalone-2.32.0.jar -role webdriver  -hub http://ec2-54-244-219-84.us-west-2.compute.amazonaws.com:7055/grid/register

我已经安装了 Xvfb 并开始使用屏幕。

Xvfb :99 -screen 0 1024x768x24 &

我还设置了显示环境变量。

export DISPLAY=:99

我正在尝试在 Amazon EC2 上运行一个简单的测试。

require 'headless'
require 'selenium-webdriver'

# Start the headless browser
headless = Headless.new
headless.start
browser = Selenium::WebDriver.for(:remote, :url => "http://localhost:7055/wd/hub")

# Print google.com's title
browser.get('http://google.com')
puts browser.title

# Close the browser
browser.quit
headless.destroy

或者从我的本地机器

require 'headless'
require 'selenium-webdriver'

# Start the headless browser
headless = Headless.new
headless.start
browser = Selenium::WebDriver.for(:remote, :url => "http://ec2-54-244-205-27.us-west-2.compute.amazonaws.com:7055/wd/hub")

# Print google.com's title
browser.get('http://google.com')
puts browser.title

# Close the browser
browser.quit
headless.destroy

但我仍然收到上述错误...

Error: no display specified

此外,当我尝试从命令行运行 FireFox 时...

Xlib:  extension "RANDR" missing on display ":99".
4

1 回答 1

4

为我解决此问题的方法是执行以下操作...

而不是像这样运行 webdriver 节点......

java -jar selenium-server-standalone-2.32.0.jar -role webdriver  -hub http://ec2-54-244-219-84.us-west-2.compute.amazonaws.com:7055/grid/register

我在命令之前添加了 xvfb-run ...

xvfb-run java -jar selenium-server-standalone-2.32.0.jar -role webdriver  -hub http://ec2-54-244-219-84.us-west-2.compute.amazonaws.com:7055/grid/register
于 2013-04-10T22:37:30.167 回答