我正在尝试将Stripe集成到我正在构建的Web应用程序中。但是,当我尝试测试“Pay with Card”按钮时,我遇到了一个琐碎的问题。无论我做什么,rspec都会抛出 ElementNotFound 错误。
经过一番搜索,我发现这是因为默认驱动程序 rack_test 不支持Javascript。然后我提到了一些文档:https://github.com/jnicklas/capybara#drivers并添加了:js =>对我的一个RSpec场景是真的,以及我的gemfile的 selenium-webdriver gem。
然而,这引入了另一组问题。现在每当我运行测试时,我都被告知我使用了无效的用户名/密码组合,我无法进入测试的下一部分,看看我是否可以点击该死的按钮! Selenium似乎没有识别和/或使我的用户工厂无效。
举手。
任何帮助将不胜感激。
规格/特征/ user_upgrade_premium_spec.rb:
require 'rails_helper'
describe "Upgrade from Standard to Premium Plan" do
before do
@user = create(:user)
visit root_path
click_link "Sign In"
fill_in 'Email', with: @user.email
fill_in 'Password', with: @user.password
click_button "Sign In"
expect(page).to have_content "Signed in successfully."
end
scenario "Successfully", :js => true do
click_link "My Account"
click_link "Upgrade Account"
click_button "Pay with Card"
end
end
规格/工厂/ user.rb
FactoryGirl.define do
factory :user do
name "User One"
sequence(:email, 100) { |n| "person#{n}@example.com" }
password "helloworld"
password_confirmation "helloworld"
confirmed_at Time.now
end
end
答案 0 :(得分:0)
在超时类别下尝试implicit_wait
,例如page_load
和@driver.manage.timeouts.script_timeout = 15
;全局声明它,让我们看看它是如何工作的!
<span>Select depatament</span><span>
<select id="department" onchange="EnableSlaveSelectBox(this)" data-slaveelaments='{"a": 1, "b": "2"}'>
<option selected disabled>-Select-</option>
</select>
</span>