Capybara内容未找到,但实际上内容存在

时间:2015-06-29 21:25:04

标签: ruby-on-rails ruby cucumber capybara

我面临一些奇怪的问题。我使用水豚,黄瓜和恶作剧为我的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我得到用户的电子邮件地址。当我运行此测试时,它失败了,因为找不到内容(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?当我在page.body或find_field(&#39; users&#39;)中看到那些内容时,它会返回false。值......任何人都可以帮我这个吗?提前致谢

1 个答案:

答案 0 :(得分:0)

google 1-2天后我得到了答案。在Capybara中有一个错误,当文本区域填充了javascript时,当我们尝试时,水豚会返回false:

page.has_content?

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