find() 和 expect() 选择器之间有什么区别?
What are the differences between the find() and expect() selectors?
我正在研究 capybara
和 cucumber
的自动化测试,我的测试最终变得有点混乱,因为我使用两种方法在页面上搜索文本。
我的问题是,哪一个最适合测试,为什么要使用这个特定的选择器?
所以我的页面结构是这样的
HTML
<p>some cool text</p>
精选集
#find selector
page.find('p', text: 'some cool text')
#expect selector
expect(page).to have_text('some cool text')
find
和 have_text
是水豚在您的示例中提供的方法。 find
是一种方法,returns 匹配元素供您进一步交互(用于范围界定等),而 have_text
(以及其他一些)是 RSpec 匹配器与 RSpecs expect
方法一起使用,以指定您希望在页面上看到或看不到的内容。如果您需要该元素进行进一步操作,请使用 find
,如果您所做的只是检查页面上是否存在某些内容,请使用 expect
fyi - 对你的发现的等价期望是
expect(page).to have_css('p', text: 'some cool text')
我正在研究 capybara
和 cucumber
的自动化测试,我的测试最终变得有点混乱,因为我使用两种方法在页面上搜索文本。
我的问题是,哪一个最适合测试,为什么要使用这个特定的选择器?
所以我的页面结构是这样的
HTML
<p>some cool text</p>
精选集
#find selector
page.find('p', text: 'some cool text')
#expect selector
expect(page).to have_text('some cool text')
find
和 have_text
是水豚在您的示例中提供的方法。 find
是一种方法,returns 匹配元素供您进一步交互(用于范围界定等),而 have_text
(以及其他一些)是 RSpec 匹配器与 RSpecs expect
方法一起使用,以指定您希望在页面上看到或看不到的内容。如果您需要该元素进行进一步操作,请使用 find
,如果您所做的只是检查页面上是否存在某些内容,请使用 expect
fyi - 对你的发现的等价期望是
expect(page).to have_css('p', text: 'some cool text')