Cucumber 如何在特定选择器中使用expect?
我正在学习使用Cucumber 如何在特定选择器中使用expect?,cucumber,capybara,Cucumber,Capybara,我正在学习使用capybara、cucumber和webdriver 我正在使用expect进行测试,我通常使用expect(page)。让_选择器('p','some cool text')查找一个元素,但有时它碰巧有多个类似的选择器,有时它会在一段时间后加载 为了简化我要说的内容,我将组合一个html方案来演示我要查找的内容 setTimeout(函数(){ document.getElementById('alpha').innerHTML='some cool text'; },300
capybara
、cucumber
和webdriver
我正在使用expect进行测试,我通常使用expect(page)。让_选择器('p','some cool text')
查找一个元素,但有时它碰巧有多个类似的选择器,有时它会在一段时间后加载
为了简化我要说的内容,我将组合一个html方案来演示我要查找的内容
setTimeout(函数(){
document.getElementById('alpha').innerHTML='some cool text';
},3000)
将加载此文本
3s后加载的文本
我不想找到的类似文本
some cool text您编写的语句没有达到预期效果,因为您只是将“some cool text”作为参数传递,而不是作为文本选项传递。你想要的是
expect(page).to have_selector('p#alpha', text: 'some cool text')
它最多将等待Capybara。对于id为“alpha”且包含文本“some cool text”的p元素,默认等待时间为\u max\u wait\u time
秒。默认情况下,Capybara.default\u max\u wait\u time
为2秒,因此,如果您的页面上有许多事情需要3秒以上的时间才能发生,您可能需要增加该时间。如果只有这一个,您可以通过传递wait
选项来延长特定呼叫的最大等待时间
expect(page).to have_selector('p#alpha', text: 'some cool text', wait: 5)
另外,如果我是你,当你知道你在使用css时,我会使用have_css
而不是have_selector
expect(page).to have_css('p#alpha', text: 'some cool text', wait: 5)