我正在使用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,不再使用最新版本然后找到以前工作的东西不再起作用..
答案 0 :(得分:0)
很多次发生在我身上。答案是:
总之,请确保您的版本与容器版本同步。
另外请注意Selenium 3.0在我的情况下它在firefox中运行得不好,所以我将我的库和容器降级为硒2.53
此致