当前位置: 首页 > 知识库问答 >
问题:

nightwatchjs:如何在不创建错误/失败/异常的情况下检查元素是否存在

姬昀
2023-03-14

在我正在测试的页面中,可能会显示两个按钮:BASIC或Advanced。

我想知道高级按钮是否显示--如果显示,请单击它。

try { 
    browser.isVisible('#advanced-search', function(result) {console.log(result.state); }) 
} catch (myError) 
{ 
    console.log(myError); 
}

共有1个答案

昌博易
2023-03-14

您可以通过使用Selenium协议“element”和回调函数来检查结果状态以确定是否找到该元素来实现这一点。例如:

browser.element('css selector', '#advanced-search', function(result){
    if(result.status != -1){
        //Element exists, do something
    } else{
        //Element does not exist, do something else
    }
});
 类似资料:
  • 问题内容: 我正在尝试编写一个脚本,该脚本需要根据CSS选择器找到的特定浏览器对象是否存在来适应其工作流程行为。 我不想使用document.getElementByID方法,因为从技术上讲,这不是CSS选择器,并且我们整个企业都在CSS选择器上进行了标准化,因此在DOM以外的其他任何选择都不会使CSS选择器超出我们的代码审查过程无论如何。 ThingSelector在哪里: OpenThing在

  • 如果这是存在的,这个函数很快完成,但如果上面不存在,那么它运行很长时间。 有人能帮我解决这个问题吗?这样检查就可以很快进行了?

  • 问题内容: 示例:我正在检查是否存在像这样的数组元素: 但是,我不断收到此错误: 当然,我第一次想要实例时,$ instances不会知道密钥。我想我对可用实例的检查是错误的? 问题答案: 您可以使用语言构造或函数。 应该更快一些 (因为它不是函数) ,但是如果元素存在并且具有value,则将返回false 。 例如,考虑以下数组: 和这三个测试,依赖于: 第一个会得到您( 该元素存在,并且不为n

  • 我如何检查一个元素是否在页面上没有使用功能隐含等待?我可以检查元素是在页面上使用隐含等待: 有类似的溶液吗?

  • 好的,我的情况如下: 在我测试的网站上,我测试的一部分包括一个表,用户可以在其中添加或删除行。我无法控制表是否是空的,所以我需要条件(IF)来探索两种场景: 1.桌子是空的;2.桌子不是空的。 我想到的只是检查表的第一行是否存在。如果有,做一些测试,然后继续,如果没有跳过表格,继续下一篇文章。 当然,我不能试着在第一行做一个cy.get,因为如果它找不到元素,它将无法通过测试,所以我尝试了以下方法

  • 问题内容: 我想知道an 是否为空,但是没有使用方法。有没有办法知道它是否为空,而无需从中读取? 问题答案: 我想你在找。它不会告诉您它是否为空,但可以指示您是否要读取数据。