我的水豚测试包括以下几行:
click_button "SHARE"
fill_in 'Email Address', :with => @user_two.email
save_and_open_page
click_button 'CONFIRM'
"共享"按钮将使模式可见。填写此模式的电子邮件地址文本框似乎可以顺利进行,但是我收到按钮的以下错误
Capybara::ElementNotFound:
Unable to find button "CONFIRM"
但是,当我save_and_open_page时,该按钮是可见的。
我试过切换到
page.find("#id-of-button").click
但水豚也找不到。
有趣的是,save_and_open_page向我展示了一个页面,其中尚未填写电子邮件字段。
我想我可能错过了一些关于save_and_open_page如何工作的基本知识,因为如果这是 Capybara 看到的全部页面,那么这些错误对我来说毫无意义......
编辑:模式视图代码
.title.aaux
Title
.content
.line-separator
#intro
Enter Email:
= form_for(patient, url: {controller: "dashboard/patients", action: "share_with_user"}, method: :post, html: {id: "share-patient-form"}) do |f|
%fieldset.bordered
= f.text_field :share_user_email, placeholder: "Email Address", class: "aaux form-control"
.line-separator
#button-row
%button.btn.btn-success.aaux.pull-right#confirm-share-patient{type: "submit"}
CONFIRM
%button.btn.btn-cancel.aaux.pull-right#close-modal-share-patient
CANCEL
编辑:为按钮生成的源代码
<button type="submit" id="confirm-share-patient-button" class="btn btn-success aaux pull-right">
CONFIRM
</button>
我从Selenium webdrive更改为capybara-webkit,问题不再发生。