未找到内容但实际内容存在
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
我遇到了一些奇怪的问题。我使用 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