如何使用 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の雏形

ruby 当Poltergeist随机失败时重新启动并重试。

如何使用 WebDriver 检查元素是不是可见

如何使用 WebDriver 检查是不是存在警报?