Cucumber find()和expect()选择器之间有什么区别?

Cucumber find()和expect()选择器之间有什么区别?,cucumber,capybara,Cucumber,Capybara,我正在用capybara和cucumber研究自动化测试,我的测试结果有点混乱,因为我使用两种方法搜索页面上的文本 我的问题是,哪一个测试的应用程序最好,为什么要使用这个特定的选择器 所以我的页面结构是这样的 HTML find和have\u text是示例中水豚提供的方法find是一种返回匹配元素供您进一步交互的方法(用于范围界定等),而have_text(以及其他一些)是一种RSpec匹配器,与RSpecsexpect方法一起使用,用于指定您希望在页面上看到或看不到的内容。如果需要进一步操作

我正在用
capybara
cucumber
研究自动化测试,我的测试结果有点混乱,因为我使用两种方法搜索页面上的文本

我的问题是,哪一个测试的应用程序最好,为什么要使用这个特定的选择器

所以我的页面结构是这样的

HTML


find
have\u text
是示例中水豚提供的方法
find
是一种返回匹配元素供您进一步交互的方法(用于范围界定等),而
have_text
(以及其他一些)是一种RSpec匹配器,与RSpecs
expect
方法一起使用,用于指定您希望在页面上看到或看不到的内容。如果需要进一步操作的元素,请使用
find
,如果所做的只是检查页面上是否存在某些内容,请使用
expect

仅供参考-与您的发现相当的期望值为

expect(page).to have_css('p', text: 'some cool text')
#find selector
page.find('p', text: 'some cool text')

#expect selector
expect(page).to have_text('some cool text')
expect(page).to have_css('p', text: 'some cool text')