远程 Selenium WebDriver 不响应 Cucumber 测试

发布于 2024-10-16 04:31:07 字数 729 浏览 3 评论 0原文

我已经在 Cucumber 中设置了一个功能,并使用 @javascript 标签让它在 selenium 中运行 在我的开发机器上,selenium 运行良好,但因为 webdriver 不支持 osx 上的本机事件,但我需要将其连接到运行 ubuntu 的虚拟机,

我已经在我的 ubuntu 机器上运行了 webdriver 服务器

,并像这样破解了我的水豚驱动程序像这样连接到远程服务器:

def browser
  unless @browser

    @browser = Selenium::WebDriver.for(:remote, :url => "http://192.168.1.69:4444/wd/hub", 
      :desired_capabilities => Selenium::WebDriver::Remote::Capabilities.firefox)
    #@browser = Selenium::WebDriver.for(options.delete(:browser) || :firefox, options)
    at_exit do
      @browser.quit
    end
  end
  @browser
end

当我运行测试时,虚拟机上的控制台显示正在发生的事情并输出:

WebDriver 远程服务器:INFO 执行 ....

但就是这样,由于超时,测试在一段时间后失败

任何想法?

I've set up a feature in cucumber and am using the @javascript tag to have it run in selenium
On my dev machine selenium runs fine but because webdriver doesn't support native events on osx yet I need to hook it up to a virtual machine running ubuntu

I've got webdriver server running on my ubuntu machine

and hacked my capybara driver like so it connect to the remote server like so:

def browser
  unless @browser

    @browser = Selenium::WebDriver.for(:remote, :url => "http://192.168.1.69:4444/wd/hub", 
      :desired_capabilities => Selenium::WebDriver::Remote::Capabilities.firefox)
    #@browser = Selenium::WebDriver.for(options.delete(:browser) || :firefox, options)
    at_exit do
      @browser.quit
    end
  end
  @browser
end

When I running my test the console on my virtual machine shows somethings going on and outputs:

WebDriver remote server: INFO executing ....

But thats it the test fails after some time due to timeout

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鹿港小镇 2024-10-23 04:31:07

我不确定是什么导致了您的具体问题。但是您应该使用内置机制注册您的驱动程序:

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

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

然后您可以使用正常机制切换到它:

Capybara.current_dirver :firefox_ubuntu

I am not sure what is causing your specific problem. But you should register your driver using the built in mechanism:

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

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

and then you can switch to it using the normal mechanism:

Capybara.current_dirver :firefox_ubuntu
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文