未找到内容但实际内容存在

Capybara Content not found but actually the content exists

我遇到了一些奇怪的问题。我使用 capybara、cucumber 和 poltergeist 为我的 rails 应用编写了一个测试用例。请参阅下面的代码..

@javascript
Scenario: admin can search multiple users when different oinkcodes exist
Given a "admin" user exists and is signed in
And the following users with an oinkcode exist:
  | email           | oinkcode                                 |
  | berf@berf.com   | 5f9614e97a5610f99c7d0975a73de43f2414fc96 |
  | sample@berf.com | asd2455a5610f99c7d0975a73de43f2414fc9812 |
When I goto "/oinkcodes/search"
And I fill in "query" with the following lines of text:
  |                    text                |
  |5f9614e97a5610f99c7d0975a73de43f2414fc96|
  |asd2455a5610f99c7d0975a73de43f2414fc9812|
And I click "Go"
And I wait for index   # sleep for 10 sec
#And I do some debugging
Then I should see "berf@berf.com"
And I should see "sample@berf.com"

在上面的示例中,当我单击 'Go' 时,通过 javascript 我获得了用户电子邮件地址。当我 运行 这个测试时,它失败了 "content not found (RuntimeError)"....... 当我尝试通过 pry.

进行调试时
pry(#<Cucumber::Rails::World>)> page.body
Result: <h3>Users</h3>\n      <textarea class=\"text_area\" id=\"users\" rows=\"15\" cols=\"60\" readonly=\"\">    berf@berf.com\n    sample@berf.com\n</textarea>\n 

pry(#<Cucumber::Rails::World>)> find_field('users').value
=> "    berf@berf.com\n    sample@berf.com\n"
[4] pry(#<Cucumber::Rails::World>)> page.has_content?('berf@berf.com')
=> false

我不明白,为什么page.has_content?返回 false,当我可以在 page.body 或 find_field('users').value 中看到该内容时......任何人都可以帮我解决这个问题吗?提前致谢

在 google 1-2 天后,我得到了答案。水豚有一个bug,当一个文本区域被javascript填充时,水豚returns false 当我们尝试:

page.has_content?

即使我们可以在UI中看到结果。 见 link : https://groups.google.com/forum/#!topic/ruby-capybara/4K_EuQO71Ig