如何使用 poltergeist webdriver 让 JS 点击?
Posted
技术标签:
【中文标题】如何使用 poltergeist webdriver 让 JS 点击?【英文标题】:How to make JS click with poltergeist webdriver? 【发布时间】:2016-12-16 09:17:25 【问题描述】:当我使用 chrome 驱动程序运行测试时 - 它通过了。
当我使用 poltergeist 运行它时 - 它尝试使用 html 格式进行点击,但出现错误:
ActionController::UnknownFormat:
ActionController::UnknownFormat
controller.rb
def features
newspaper = Newspaper.find(params[:id])
respond_to do |format|
format.js render locals: newspaper: newspaper
end
end
view.html.haml
= link_to features_newspaper_path(newspaper), class: %w(qa-edit-features), format: 'js', remote: true
feature_spec.rb
it 'enable newspaper hilsninger features', js: true do
find('.qa-edit-features').click
end
spec_helper.rb
require 'capybara/rspec'
require 'capybara/poltergeist'
Capybara.register_driver :chrome do |app|
Capybara::Selenium::Driver.new(app, browser: :chrome)
end
if ENV['BROWSER'] == 'google-chrome'
Capybara.javascript_driver = :chrome
else
Capybara.javascript_driver = :poltergeist
end
【问题讨论】:
【参考方案1】:这很可能是由于页面上的 JS 错误(或使用 Poltergeist 不支持的 ES2015+ 方法)导致 JS 解析失败并且永远不会安装 rails UJS 处理程序。确保您的 Poltergeist 驱动程序注册配置 (https://github.com/teampoltergeist/poltergeist#customization) 中包含 js_errors: true
,它应该会显示 JS 错误。
【讨论】:
以上是关于如何使用 poltergeist webdriver 让 JS 点击?的主要内容,如果未能解决你的问题,请参考以下文章
ruby 基于Poltergeist(PhantomJS)的Web Crawler Helper类。使用Capybara作为构建webcrawler的框架非常方便
ruby 使用Capybara w / Poltergeist(PhantomJS)从位于给定URL的HTML页面的主体中抓取文本内容。
ruby Capybara + Poltergeistの雏形