capybara fill_in有时不会填写所有字符

时间:2016-11-16 17:03:21

标签: ruby-on-rails selenium-webdriver capybara

大约每10次中有3次,此规范将失败,因为fill_in无法填写user[username]字段的所有字符。

uuid = SecureRandom.uuid
fill_in "user[username]", :with => uuid

注意:

  • 有时会成功
  • 有时它会丢弃一个随机数字的字符,通常是在索引29之后的某个地方
  • 在OSX上永远不会在本地失败
  • 故障发生在Solano aka tddium远程

有谁知道发生了什么事?

这是我的配置:

capybara (2.4.4)
selenium-webdriver (3.0.0)
ChromeDriver 2.25.426924 (649f9b868f6783ec9de71c123212b908bf3b232e) (very recent)
using Chrome, not headless:

在spec_helper中:

Capybara.register_driver :selenium do |app|
  http_client = Selenium::WebDriver::Remote::Http::Default.new
  http_client.timeout = 100
  Capybara::Selenium::Driver.new(app, :browser => :chrome, :http_client => http_client)
end

1 个答案:

答案 0 :(得分:1)

@ thomas-walpole可能正在指出根本原因 - 由于我们将宝石的版本号固定在2.4.4而未能通过水豚的变化来补偿chromedriver的变化。

我将capybara升级到最新版本2.10.1,修复了所有必要的弃用,然后重新测试。

在那里的某个地方,它似乎现在起作用了。至少,我曾经在10次尝试中获得3次失败,现在它至少可以连续重复20次。