通过SSH运行黄瓜+ watir-webdriver + mac os x给出“元素无法滚动到视图中”

时间:2012-01-24 23:45:34

标签: firefox cucumber jenkins watir watir-webdriver

我有一个黄瓜项目使用watir-webdriver和headless在我的mac工作站上工作得很好。我已经在我的工作站上设置了一个特殊的“jenkins”用户,因为我打算将我的工作站转换为Jenkins节点。当作为“jenkins”用户在命令行上运行测试时,或者通过我当地的Jenkins安装运行测试时,一切正常。

然而,当我从一个远程Unix盒子进入我的工作站并尝试从命令行运行黄瓜时,我的一些测试会返回:

Element cannot be scrolled into view:http://[url] (Selenium::WebDriver::Error::MoveTargetOutOfBoundsError)

以下是设置浏览器的env.rb代码段:

require 'headless'
headless = Headless.new
headless.start

require 'watir-webdriver'
browser = Watir::Browser.new :firefox

Before do
  @browser = browser
end

# "after all"
at_exit do
  browser.close
  headless.destroy
end

有趣的是,一些测试仍然通过,黄瓜仍然会生成截图,所以通过SSH黄瓜仍然打开firefox,在一些测试中成功,截取屏幕截图并关闭。

更新:在Ubuntu主机上创建了一个新的Jenkins从站,具有完全相同的设置/安装/项目,并且工作正常。貌似证实这是Mac OSX Lion问题上的X11。也许山狮的xquartz港口会有所帮助。

2 个答案:

答案 0 :(得分:0)

我没有使用无头进行测试。 Alister Scott在his blog中有一个例子,并没有使用firefox。

require 'watir-webdriver'
require 'headless'
headless = Headless.new
headless.start
b = Watir::Browser.start 'www.google.com'
puts b.title
b.close
headless.destroy

您应该将以下代码添加到env.rb文件中:

if ENV['HEADLESS']
  require 'headless'
  headless = Headless.new
  headless.start
  at_exit do
    headless.destroy
  end
end

答案 1 :(得分:0)

您可能在Selenium / WebDriver中遇到此错误:

Selenium Webdriver

他们正在努力;启用本机事件有助于某些平台/浏览器。