Ruby on rails 单击元素时从phantomJS移动到rspec功能规格的无头chrome时出错
我试图用它来代替我一直使用到现在的恶作剧 我之前对恶鬼和幻影的设置是:Ruby on rails 单击元素时从phantomJS移动到rspec功能规格的无头chrome时出错,ruby-on-rails,selenium-webdriver,rspec,capybara,google-chrome-headless,Ruby On Rails,Selenium Webdriver,Rspec,Capybara,Google Chrome Headless,我试图用它来代替我一直使用到现在的恶作剧 我之前对恶鬼和幻影的设置是: Gemfile: gem 'phantomjs', :require => 'phantomjs/poltergeist' gem 'poltergeist' 在spec_helper.rb中 spec_helper.rb : Capybara.javascript_driver = :poltergeist Capybara.register_driver :poltergeist do |app| Capyb
Gemfile:
gem 'phantomjs', :require => 'phantomjs/poltergeist'
gem 'poltergeist'
在spec_helper.rb中
spec_helper.rb :
Capybara.javascript_driver = :poltergeist
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, {:phantomjs => Phantomjs.path, :timeout => 250})
end
spec_helper.rb :
require 'webdrivers'
require "selenium/webdriver"
Capybara.register_driver :chrome do |app|
Capybara::Selenium::Driver.new(app, browser: :chrome)
end
Capybara.register_driver :headless_chrome do |app|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
chromeOptions: { args: %w(headless disable-gpu) }
)
Capybara::Selenium::Driver.new app,
browser: :chrome,
desired_capabilities: capabilities
end
Capybara.javascript_driver = :headless_chrome
现在,我想转到headless_chrome,我已经做了以下工作:
文件中的更改
Gemfile:
gem 'capybara-selenium'
gem 'webdrivers'
我已经移除了恶灵和幽灵相关的宝石
spec_helper.rb中的更改
spec_helper.rb :
Capybara.javascript_driver = :poltergeist
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, {:phantomjs => Phantomjs.path, :timeout => 250})
end
spec_helper.rb :
require 'webdrivers'
require "selenium/webdriver"
Capybara.register_driver :chrome do |app|
Capybara::Selenium::Driver.new(app, browser: :chrome)
end
Capybara.register_driver :headless_chrome do |app|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
chromeOptions: { args: %w(headless disable-gpu) }
)
Capybara::Selenium::Driver.new app,
browser: :chrome,
desired_capabilities: capabilities
end
Capybara.javascript_driver = :headless_chrome
但不知何故,单击某个元素不起作用:
find("#element_id").click
expect(page).to have_css("#element_on_page_after_clicking")
它告诉我选择器不存在的错误
这意味着单击元素不起作用
如果有人能让我知道如何解决这个问题,那将非常有帮助 你用的是哪个版本的Chrome?我不知道怎么知道这个版本。但是从场景中删除js:true解决了问题。@aria删除js:true并不能解决问题,它只是意味着你正在一个不支持js(rack_test driver)的假浏览器中运行测试-我猜它以前失败过,因为你的页面中有一个js错误-检查你的开发人员控制台并修复你的js错误。