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

Selenium with Mocha/Chai-DOM中不存在如何返回false is项

巫马庆
2023-03-14

我现在正在用硒网络驱动和摩卡

如果他们已登录,则DOM中存在以下内容(如果您未登录,则根本不存在)。

<a class="account-panel-controls__link" role="link" id="sign-out-nav" data-log-out="">Sign out</a>

我在想办法看看它是否存在

<a class="account-panel-controls__link" role="link" id="registration-sign-in-nav" data-log-out="">Sign in</a>

我尝试了一些follow的变体,但毫无结果。如果Id为“sign out nav”的元素最初存在,则可以正常工作,但如果没有,则测试失败,表示无法找到该元素(我猜是因为它根本不在DOM中?)。

driver.findElement(By.id('sign-out-nav')).isDisplayed().then(function (displayed) {
    if (displayed) {
        driver.findElement(By.id('sign-out-nav')).click();
    }
    else{
        driver.findElement(By.id('registration-sign-in-nav')).click();
    }
});

我搜索了很多帖子

我有什么遗漏吗?

谢啦

共有3个答案

许曦
2023-03-14

Selenium在尝试查找页面元素时非常变化无常。围绕驾驶员。与司机见面。wait()并查看是否允许找到它。

庾兴发
2023-03-14

要在页面上查找元素,建议使用. findElements():

// find an element on the page sample:
driver.findElements(By.id('sign-out-nav')) .then(found => console.log('Element found? %s', !!found.length));

现在如果.长度

哦,不要忘记,根据您想要做的事情,如果在. findElement()中找到多个元素,您可能需要使用索引,以防您只有一个。

归松
2023-03-14

不确定这对您的实例是否有帮助,但使用webdriverio mocha assertjs selenium,我使用了以下内容:

assert.doesNotThrow(() => { browser.getText('#registration-sign-in-nav') });

这适用于我使用的堆栈,因为当元素不存在时,它会抛出错误。

 类似资料:
  • ====下面是完整的存储库,如果您希望查看更新后的存储库:https://github.com/kidfrom/g2java/tree/main/etc/mssqlserver 控制器/nameController.java mapper/namemapper.java model/namemodel.java

  • 问题内容: 有什么方法可以追溯到Eclipse吗?基本上,当我按照执行流程(Ctrl +单击等)在一个大项目中跳来跳去时,有没有办法追溯步骤?如果我的代码调用一个方法,然后转到方法定义,是否有组合键可以将我带回到调用代码? 问题答案: 像在网络浏览器中一样按+ 和+ 。

  • 我试图使用cypher创建一个查询,该查询将“查找”厨师可能有的缺失食材,我的图是这样设置的:

  • null 根据密钥在缓存中查找 如果找到,则从缓存返回结果 如果未找到,则返回NULL 我不想在cache-miss的情况下更新缓存,有没有办法使用spring注释来做到这一点

  • 问题内容: 我想将方法​​返回的数组存储到另一个数组中。我怎样才能做到这一点? 当我调用此方法时,如何将返回的数组(z)存储到另一个数组中? 问题答案: 上面的方法不返回数组本身,而是返回对该数组的引用。在调用函数中,您可以在另一个引用中收集此返回值,例如: 此后还将引用之前引用的同一数组。 如果这不是您想要的,并且要创建阵列的副本,则可以使用创建副本。

  • 我的数据库中有两个表: 表1:购买物品 表1列出了购买的物品,表2每小时更新一次每件物品的当前价格。因此,从表2中可以清楚地看出,肉类最后一次交易是在2013年2月20日上午10点,而鱼类不是在同一天交易的,它是在2013年2月19日上午9点交易的,鸡肉是在2013年2月20日上午9点交易的。我想做的是,列出表1中的所有项目,并加入表2中各个项目的最后交易价格,如下所示: 这里应该应用什么类型的连