Capybara + Selenium:save_and_open_page显示按钮,但水豚无法找到它

时间:2014-04-04 22:45:12

标签: ruby-on-rails selenium capybara

我的水豚测试包括以下几行:

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>

1 个答案:

答案 0 :(得分:0)

我从selenium webdriver更改为capybara-webkit,问题不再发生。