【问题标题】:Capybara doesn't fill correctly some fieldsCapybara 未正确填写某些字段
【发布时间】:2015-11-07 19:13:37
【问题描述】:

我开始使用 capybara 来测试我的 rails 应用程序,但现在我遇到了问题。

有时,capybara 只在一个字段中填充两个字段的内容,从而产生错误。这是随机发生的,我不知道如何预防。

例如,下图的第一个字段应该是“New capybara party”,第二个字段应该是“Lorem ipsum dolor sit amet”,但如您所见,填充的是bad。

This image explains the problem

我将 rspec 与水豚和硒一起使用。代码如下:

context 'User is logged in' do
  it 'creates a party' do
    click_link "Have a party"
    within("#new-party-modal") do
      fill_in 'party_title', with: 'New capybara party'
      fill_in 'party_description', with: 'Lorem ipsum dolor sit amet'
      fill_in 'party_venue', with: '1392 7th Avenue, San Francisco, California, Estados Unidos'
      fill_in 'party_phone', with: '9106156667'
      fill_in 'party_starts_at', with: DateTime.now+5.days
      click_button 'Continue to step 2'
    end
  end
end

谢谢!

【问题讨论】:

  • 你能从那个模态输出代码吗?
  • 当然,这里是代码:pastebin.ca/3240976 但它不会仅以这种形式发生。这发生在我的应用程序的任何部分
  • 嗯,不知道可能是什么问题。您是否在此规范中传递了js: true?您也可以尝试使用poltergeist 而不是selenium,看看您是否有同样的行为。
  • 您的表单中似乎有某种 JavaScript 验证,阻止焦点转移

标签: ruby-on-rails selenium rspec capybara


【解决方案1】:

看截图,我怀疑问题与定位器有关。由于fille_in 使用名称、id 或标签文本,因此您需要非常小心它们的唯一性。因此,请确保 textareatitle 元素的选择器不重叠。

【讨论】:

    【解决方案2】:

    我遇到了类似的情况,但是我的表单有一个 javascript 可以在它们失去焦点后保存它们,所以我只是

    page.driver.browser.execute_script('$("your_field").trigger("submit.rails")')
    

    每次填充后。 希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      • 1970-01-01
      • 2020-04-07
      • 1970-01-01
      • 1970-01-01
      • 2020-08-25
      • 2011-09-14
      相关资源
      最近更新 更多