使用RSpec,Capyabra和Selenium(docker),点击方法获取错误:连接被拒绝

时间:2016-10-25 12:50:37

标签: selenium docker capybara selenium-chromedriver

我正在使用RSpec,Capyabra和Selenium:

gson-2.3.1.jar

我发现当我尝试点击一个元素时,我会在下面记录错误。 click方法会导致错误。当我在没有dockerized selenium的情况下运行我的测试时,测试工作就好了。在700个测试中,2个测试以这种方式失败,然后所有以下测试测试都失败了。

这些测试中唯一独特的是另一种形式的表单: 你试图做一个动作,但你没有授权,所以另一个表单是提示用户名和密码。在这两个测试中,我都试图单击“取消”按钮(我在每个表单上都有2个“取消”按钮)。 测试中失败的行是:

docker run --shm-size=2G -d -p  4444:4444 --net=host selenium/standalone-chrome

没有'.click',没有错误。不幸的是,如果没有element.click部分,我无法测试。

我的capybara.rb:

all('.btn-cancel')[-1].click

错误消息:

isWindows = (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil

require 'capybara/rspec'
require 'capybara'
require 'capybara/dsl'
require_relative 'sinatra_proxy'
require 'selenium/webdriver'
require 'selenium/webdriver/remote/http/curb' if !isWindows

Capybara.register_driver :selenium_chrome do |app|
    http_client = isWindows ? nil : Selenium::WebDriver::Remote::Http::Curb.new
    options = {
        http_client: http_client,
        browser: :chrome,
        # service_log_path: 'chromedriver.out', # Enable Selenium logs
        switches: ["--disable-web-security", '--user-agent="Chrome under Selenium for Capybara"']
    }
    options[:url] = "http://localhost:4444/wd/hub"
    Capybara::Selenium::Driver.new app, options

end
Capybara.default_driver = :selenium_chrome
Capybara.app = SinatraProxy.new
Capybara.app_host = "http://#'localhost':9000"
Capybara.server_host = '0.0.0.0'

解: 使用精确版本2.51.3,不再使用最新版本然后找到以前工作的东西不再起作用..

1 个答案:

答案 0 :(得分:0)

很多次发生在我身上。答案是:

  1. 升级您的硒库。
  2. 升级容器图像并重新创建容器。
  3. 总之,请确保您的版本与容器版本同步。

    另外请注意Selenium 3.0在我的情况下它在firefox中运行得不好,所以我将我的库和容器降级为硒2.53

    此致