【问题标题】:How to assert that element exists on the page using Node.js + Mocha + Selenium?如何使用 Node.js + Mocha + Selenium 断言该元素存在于页面上?
【发布时间】:2017-06-28 19:55:50
【问题描述】:

我想验证网页上是否存在该元素。据我了解,selenium v​​3 删除了“isElementPresent”功能,还有其他一些方法可以断言这一点。请给我一个例子,说明如何在没有 driver.isElementPresent 的情况下做到这一点?

例如,我必须验证页面上是否存在“密码”字段 - 如果 true 测试通过,如果 false - 测试失败。

如何使用 Node.js + Mocha + Selenium 做到这一点? 我怎么能断言,那个元素存在?

var element = driver.findElement(webdriver.By.id("password"));
assert.**???**(element)

【问题讨论】:

    标签: javascript node.js selenium mocha.js


    【解决方案1】:

    使用以下命令获取元素,

    var element = document.getElementById("password");
    

    现在通过断言来检查你是否得到它或坚果,

    assert.notEqual(element , null);
    

    【讨论】:

      【解决方案2】:

      我刚刚遇到了同样的问题,我想出了一个解决方案。

      对于我的方法,我使用了以下方法:

      assert.doesNotThrow(() => { 
        driver.findElement(webdriver.By.id("password"));
      });
      

      发生的情况是,每次我尝试查找不存在的元素时,都会引发异常。如果元素存在,则不会抛出异常。

      在我的特定实例中,我使用了以下内容:

      assert.doesNotThrow(() => { browser.getText('.alert.alert-danger') });
      

      它似乎运作良好。如果有变化,我会更新。

      【讨论】:

        【解决方案3】:

        只需用类似的东西抓取它来检查元素

        var element = document.querySelector("input[type='password']");
        

        最好给元素一个 id 并以这种方式获取它

        var element = document.getElementById("password");
        

        然后检查一下

        if(element) {
            // stuff
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-06-27
          • 1970-01-01
          • 1970-01-01
          • 2019-08-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多