【发布时间】:2015-12-12 02:38:11
【问题描述】:
我是水豚和 poltergeist 的新手,但这是我目前所拥有的。
它找到按钮但无法单击它。我试过'execute_script',但由于NotSupportedByDriverError,我无法让它工作。我已经包含了 gem 'capybara-webkit' 但这并没有改变任何东西。
有问题的行:
assert page.execute_script("$('.js-login-action').click()"), "Failed to click on Login"
这是完整的 test.rb 文件
require 'test_helper'
require 'capybara/poltergeist'
Capybara.javascript_driver = :poltergeist
options = {js_errors: false, js: true}
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, options)
end
class LoginTest < ActionDispatch::IntegrationTest
test "Load login page" do
visit("/users/sign_in")
assert page.has_content?('derp'), "Page does not have Derp heading"
end
test "Successful load of sign in page" do
get("/users/sign_in")
assert_response :success
end
test "Login" do
visit("/users/sign_in")
fill_in "login-username", with: 'derp'
fill_in "login-password", with: '0123456789'
assert find_button("Login"), "Failed to Find Login Button"
assert page.execute_script("$('.js-login-action').click()"), "Failed to click on Login"
assert page.has_css?('en-main-header'), "Failed to Login"
end
end
【问题讨论】:
-
您要点击的按钮是什么?你能分享他的html代码吗? (例如
<input tabindex="0" type="submit" value="Save Edits">)
标签: javascript unit-testing capybara