2

我是黄瓜和流浪汉的忠实粉丝。我正在使用 Cucumber 以 BDD 风格驱动开发,并在 vagrant vm 中配置和设置了我的开发环境,以便可以轻松地将其分发给其他开发人员。

在 vagrant vm 上测试 js 时遇到了障碍。我正在使用 capybara 和 cucumber 并尝试将 selenium 和 capybara-webkit 作为 js 驱动程序。

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

webkit 抱怨“webkit_server:无法连接到 X 服务器”。我安装了 xserver-org,但仍然没有骰子。

如果我不必在我的主机上安装我的整个环境来进行测试,我会更喜欢,因为这会破坏拥有一个可分发的 vagrant vm 的目的,它拥有开发人员在应用程序上工作所需的一切。

有任何想法吗?我在警卫的通知中遇到了类似的问题,但这似乎没有这个问题那么重要。

4

3 回答 3

1

我认为所有驱动程序都需要安装 X。所以在linux服务器上我没有怎么做。

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

远程 Selenium WebDriver 不响应 Cucumber 测试

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

这行得通。

在主机上运行 selenium 服务器

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
于 2012-02-27T11:51:21.093 回答
1

您可能想尝试无头运行 Firefox。

http://www.alittlemadness.com/2008/03/05/running-selenium-headless/

这样,您也可以在不看到它们的情况下运行测试。

于 2012-08-23T15:10:25.197 回答
0

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

此外,您可能还需export DISPLAY=:0要这样做,因为 webdriver 在启动 Firefox 时将默认使用此显示。

于 2015-04-08T20:12:55.357 回答