【问题标题】:Verify an element is not existing using webdriver and selenium使用 webdriver 和 selenium 验证元素不存在
【发布时间】:2015-05-29 13:05:13
【问题描述】:

我正在使用WebdriverIOselenium-standalone 编写自动化测试,以验证我们用户界面的各个部分是否正常工作。

我需要验证页面上不存在元素。例如,我们的系统允许员工跟踪我们向客户推荐的各种类型的资源。如果工作人员不小心添加了错误的资源,他们可以将其删除,我想验证该资源是否实际被删除并且不在页面上。

WebdriverIO 有一个.isExisting() 属性,但无法检查某些内容是否不存在(或不可见/不存在)。我也可以使用Chai 断言来解决这个问题,但还没有深入研究这个世界。

这是我的代码的 sn-p:

it('I can delete a resource from a need', function() {
    return driver
    .moveToObject('span.ccx-tasklist-task') // Hover mouse over resource
    .click('div.referral-controls a.btn.dropdown-standalone') // Click Resource drop-down
    .click('div.referral-controls.ccx-dropdown-menu-selected li > a') // Delete Resource
    .pause(2000);
    // Need to Verify that resource was deleted here

有什么建议吗?如果您需要更多信息,请告诉我。

【问题讨论】:

  • 有很多解决方案,其中一些列在您帖子右侧的标题相关下。你试过这些吗?
  • 我确实看过它们,但我很难找到正确的解决方案,可能是因为我在这方面还很陌生,主要只熟悉 javascript。

标签: javascript selenium automated-tests chai webdriver-io


【解决方案1】:

您可以通过将reverse 选项设置为truewaitForExist

.waitForExist( '[id$=OpenNeedsPanel] div.commodities', 500, true )

【讨论】:

    【解决方案2】:

    我能够验证页面上不存在这样的元素:

    .isExisting('[id$=OpenNeedsPanel] div.commodities').should.eventually.equal(false);

    【讨论】:

      【解决方案3】:

      您可以简单地使用下面提到的代码行

      int temp=driver.findElements(By.xpath("your x-path expression")).size();
      

      您甚至可以将您的 xpath 定位器替换为您的其他定位器以及 id、class、link 等。

      现在,如果 temp>0 的值,这意味着,你的元素存在

      【讨论】:

      • 感谢您的建议。我收到“未定义”错误,所以我不知道我是否安装了正确的东西来使用它。
      【解决方案4】:

      您可以参考https://webdriver.io/docs/api/element/waitForExist.html

      等待一个元素在 DOM 中出现提供的毫秒数。如果选择器至少匹配 DOM 中存在的一个元素,则返回 true,否则抛出错误。如果反向标志为真,如果选择器不匹配任何元素,该命令将改为返回真。

      resource.waitForExist(1000, true);
      

      其中 1000 是以毫秒为单位的超时时间。

      【讨论】:

        猜你喜欢
        • 2012-02-24
        • 2014-01-05
        • 2015-08-14
        • 1970-01-01
        • 2013-07-18
        • 2017-11-23
        • 1970-01-01
        • 2016-07-04
        • 1970-01-01
        相关资源
        最近更新 更多