【发布时间】: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