【问题标题】:Poltergeist can't find the element sometimesPoltergeist 有时找不到元素
【发布时间】:2017-12-13 10:29:08
【问题描述】:

我正在使用 phantomjs 2.1.1,ruby 2.3.1p112。这是我的代码:

  Capybara.default_driver = :poltergeist    
  page.find('input[type="submit"]').trigger("click")
  page.should have_content("#{user.email} created.")

此代码适用于 chorme 和 firefox 的 webdriver,但有时不适用于 poltergeist。我不知道为什么。有人可以帮忙吗?

【问题讨论】:

  • 无法在 chrome 或 firefox 上运行代码,因为它们的驱动程序不支持 trigger(如果要进行测试,您不应该使用 trigger)。除此之外,要获得更多帮助,您需要提供您收到的确切失败消息以及您尝试与之交互的一些 HTML 示例 - 请参阅 stackoverflow.com/help/how-to-ask
  • 抱歉,当我使用 chrome 或 firefox 运行时,我将触发器更改为 clink 功能
  • 然后你需要弄清楚为什么你需要将trigger 与 Poltergeist 一起使用并修复这个问题(这也可能会修复你的间歇性故障)。 trigger 在测试应用程序时应尽可能避免(如果只是抓取页面就可以了),因为这意味着您的测试实际上并没有做用户会做的事情,因此具有可疑的价值。
  • 那么我应该用什么来代替触发器,你能告诉我吗
  • 您应该在测试时使用click - 所以page.find('input[type="submit"]').click 或者更好的是page.click_button('the text of the submit button')

标签: ruby capybara integration-testing poltergeist


【解决方案1】:

PhantomJS 不再受到积极支持。使用 Chrome Headless 或其他无头浏览器解决方案。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-04
  • 1970-01-01
  • 2020-04-19
  • 1970-01-01
  • 1970-01-01
  • 2013-05-12
  • 1970-01-01
相关资源
最近更新 更多