如何在特定选择器中使用Expect?

WEB最后的狼

我正在学习用自动化测试capybaracucumberwebdriver

我在进行带有期望的测试,并且通常使用它expect(page).to have_selector('p', 'some cool text')来查找元素,但是有时它碰巧有多个类似的选择器,有时它会在一段时间后被加载。

为了简化我要说的内容,我将整理一个html方案来演示我要寻找的内容。

setTimeout(function(){

document.getElementById('alpha').innerHTML = 'some cool text';

 },3000)
<p style="background: rgba(255,0,0,0.1)">This text will load 
<p id="alpha">Text to load after 3s</p>
<p style="background: rgba(255,0,0,0.1)">similar text that I don't want to find</p>
<p>some cool text</p>

我需要知道如何仅选择第一个文本来验证单词是否'some cool text'已加载,欢迎添加id或类

托马斯·沃尔波尔

您编写的语句并没有达到您的期望,因为您只是将“一些很酷的文本”作为参数而不是作为文本选项传递。您想要的是

expect(page).to have_selector('p#alpha', text: 'some cool text')

最多等待Capybara.default_max_wait_time几秒钟,ID为'alpha'的ap元素包含文本“一些很酷的文本”出现。默认情况下Capybara.default_max_wait_time为2秒,因此,如果您有很多事情需要花费3秒钟以上的时间在页面上发生,则可能需要增加该值。如果仅此一项,则wait可以通过传递选项来延长最大等待特定呼叫的时间

expect(page).to have_selector('p#alpha', text: 'some cool text', wait: 5)

另外-如果我是您,我会使用,have_css而不是have_selector当您知道使用CSS时

expect(page).to have_css('p#alpha', text: 'some cool text', wait: 5)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Selenium WebDriver中使用日期选择器选择特定日期

如何在选择器中获得不同的状态或如何在选择器中使用选择器

如何在Ionic框架中使用CSS选择器隔离特定平台

如何在选择器Cypress中使用.length结果

如何在on方法jQuery中使用多个选择器?

如何在jQuery选择器中使用JavaScript变量?

如何在 scss 中使用祖父选择器

如何在JQuery中使用动态选择器

如何在 jQuery 中使用 .not 选择器?

如何在JSS中使用子选择器

如何在表选择器中使用 jQuery 变量

如何在包含选择器中使用井号 (£)?

如何在选择器中使用参数Tapgesture

如何在 Umbraco 8 中使用媒体选择器?

如何在Android中使用文件选择器从外部存储中选择文件

如何在Cytoscape.js中使用:not选择器?(选择没有属性的节点)

如何在日期时间选择器中使用两个验证器

如何在 swiftui 中使用 @Published 属性包装器更改选择器内的值

如何检查是否在Jasmine中使用特定选择器调用jQuery,$?

在WordPress中使用特定的CSS选择器隐藏元素

使用CSS模块时如何在Jest单元测试中使用CSS选择器

无论如何在飞镖中使用颜色选择器作为模板使用它

如何在 for 循环中使用 $ 选择器?不能使用 $("#i")

如何在OneNote 2010中使用日期和时间选择器?

如何在组件中使用多个ngx-bootstrap日期选择器

如何在回收站视图中使用图像选择器

如何在Jshell的/ set截断命令中使用选择器?

如何在子CSS选择器中使用父组件的类

如何在 tailwindcss 中使用 before::after 伪选择器?