2012-01-30 95 views
2

我是黄瓜和流浪汉的忠实粉丝。我正在使用黄瓜驱动BDD风格的开发,并且已经在流浪虚拟机中配置并设置了我的开发环境,因此可以轻松地将其分发给其他开发人员。黄瓜启用流动性功能内的功能

我打了一个障碍,当谈到在流浪vm上测试js。我正在黄瓜旁边使用水豚,并且已经尝试过硒和水豚 - webkit作为js司机。

硒想让我安装firefox。所以我打包了vagrantbox完全期待它不工作,并在vm上安装firefox ..之后,它抱怨无法获得与Firefox的稳定连接。确切的错误信息:'在60秒内无法获得稳定的Firefox连接'

webkit抱怨'webkit_server:无法连接到X服务器'..我安装了xserver-org并且仍然没有骰子。

如果我不需要在我的主机上安装我的整个环境以便进行测试,那样会失败的目的就是拥有一个可配置的vagrant虚拟机,它具有开发人员需要的所有工作应用程序。

有什么想法?我遇到了来自警卫通知的类似问题,但这似乎不像这个问题那么重要。

回答

1

我认为所有驱动程序都需要安装X. 因此,在Linux服务器上我没有这样做。

从主机通过selenium remote使用Firefox的其他方式。 这意味着JavaScript将在任何机器上的远程Firefox上运行。

Remote Selenium WebDriver not responding to Cucumber tests

http://code.google.com/p/selenium/wiki/RubyBindings

的IT工作。主机

java -jar selenium-server-standalone.jar 

变化spec_helper.rb

require "selenium-webdriver" 

profile = Selenium::WebDriver::Firefox::Profile.new 
profile["network.http.use-cache"] = false 

Capybara.register_driver :firefox_host do |app| 
Capybara::Selenium::Driver.new(app, 
    :browser => :remote, 
    :url => 'http://10.0.2.2:4444/wd/hub', 
    :desired_capabilities => Selenium::WebDriver::Remote::Capabilities.firefox(:firefox_profile => profile) 
) 
end 

Capybara.server_port = 9300 
Capybara.app_host = 'http://localhost:9300' 
Capybara.javascript_driver = :firefox_host 

变化Vagrantfile

config.vm.forward_port 9300, 9300 
0

我遇到了类似的问题。尝试ssh'ing到您的虚拟机,并从命令行执行xhost +。这将禁用访问控制,并允许客户端从任何主机连接以访问您的显示器。

此外,您可能需要export DISPLAY=:0为好,因为webdriver的将默认为当它启动Firefox中使用此显示。