【发布时间】:2016-02-07 19:14:39
【问题描述】:
我正在使用 RSpec + capybara,并将 capybara-webkit 作为驱动程序。 单击按钮后,我必须检查页面中是否存在 JS 框,但没有结果。 如果我使用 selenium 作为驱动程序,测试通过,但我需要使用 capybara-webkit。
我正在使用
expect(page).to have_selector(#js_window)
我的配置是
Capybara.run_server = false
Capybara.default_selector = :css
Capybara.default_max_wait_time = 1
Capybara.javascript_driver = :webkit
RSpec.configure do |config|
config.include Capybara::DSL
end
【问题讨论】:
-
如果您添加更多有关您收到的驱动程序配置、测试和错误消息的详细信息会有所帮助
-
好的 - 因为你有 run_server = false,这是你试图运行的远程应用程序。您是否在 capybara-webkit 中打开了黑/白名单?如果是,您是否已将远程应用程序添加到 capybara-webkit 配置中的白名单中? github.com/thoughtbot/capybara-webkit#configuration
-
是的,我也尝试过
config.allow_unknown_urls,但没有结果。我收到错误“预期 #has_selector("#habla_topbar_div") 返回 true,结果为 false”,但是当我使用 selenium 作为驱动程序时,它可以工作。 -
由于它在 selenium 中工作,这听起来像是 capybara-WebKit 的配置问题,但您还没有发布。您是否尝试将驱动程序设置为 :webkit_debug 以查看是否提供任何提示?
-
如果您正在使用 block_unknown_urls 并且允许页面呈现所需的所有 url(或者只是允许所有未知 url 而不是阻止它们)那么我没有想法 - 尝试设置驱动程序到 :webkit_debug 而不是 :webkit ,看看它是否提供了关于发生了什么的任何线索
标签: javascript ruby-on-rails rspec capybara capybara-webkit