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

What are the differences between the find() and expect() selectors?

我正在研究 capybaracucumber 的自动化测试,我的测试最终变得有点混乱,因为我使用两种方法在页面上搜索文本。

我的问题是,哪一个最适合测试,为什么要使用这个特定的选择器?

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

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')

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

fyi - 对你的发现的等价期望是

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