我正在研究capybara
和cucumber
的自动化测试,由于我使用两种方法在页面上搜索文本,我的测试结果变得有点混乱。
我的问题是,哪一个具有最好的测试应用程序,为什么要使用这个特定的选择器?
所以我的页面结构像这个
HTML
<p>some cool text</p>
Seletores
#find selector
page.find('p', text: 'some cool text')
#expect selector
expect(page).to have_text('some cool text')
find
和have_text
是示例中Capybara提供的方法。find
是一个返回匹配元素以供您进一步交互(用于作用域等(的方法,而have_text
(和其他一些(是一个与RSpecsexpect
方法一起使用的RSpec匹配器,用于指定您希望在页面上看到或不看到的内容。如果您需要元素来执行进一步的操作,请使用find
,如果您所做的只是检查页面上是否存在某些内容,则使用expect
fyi-对你的发现的同等期望是
expect(page).to have_css('p', text: 'some cool text')