isEmpty()在使用JavaScript的量角器中不起作用

时间:2018-09-05 10:07:30

标签: javascript selenium-webdriver protractor

众所周知,Java在硒中有类似的东西。

driver.findElementsByXPath("xxx").isEmpty()

JavaScript中是否有类似的东西可以使用量角器进行自动化测试?

注意事项:我使用的应用程序不是有角度的应用程序。

我的代码块经过:

if(browser.driver.findElementsByXPath("xxx").isEmpty()){
console.log();
}

我尝试过的函数是:isDisplayed().toBeTruthy();

我得到的错误是:findElement(...)。isDisplayed(...)。toBeTruthy不是函数

3 个答案:

答案 0 :(得分:1)

量角器没有没有像isEmpty()那样的方法,至少在量角器官方api docs上不可用。但是,是的,isEmpty()是用于验证字符串是否为空的Java方法

在量角器中使用 isDisplayed 方法

var foo = element(by.id('foo')); // equivalent of driver.findElement(By.id("foo"))

expect(foo.isDisplayed()).toBe(true); // equivalent of assert in java/testng

答案 1 :(得分:0)

isEmpty()可以根据字符串长度检索True或False值,

-如果String的长度为0,则返回true,

-如果String的长度> 0,则返回false,

在Selenium Java中,它也不能直接通过findElement()方法处理,它需要首先通过getText()方法从元素中检索文本值,然后才能检查值。

您可以参考下面的Java示例

String getdata = driver.findElement(By.xpath("...")).getText();
System.out.println(getData.isEmpty()); //It prints value true or false

isEmpty()函数仅适用于String变量。

与明智的做法一样,您可以为protactor实施相同的操作。

答案 2 :(得分:0)

所有用于Javascript API的量角器和selenium-webdriver都是异步的,并且返回承诺。可以从下面的API文档和源代码中找到更多详细信息。

findElements API doc

findElements source code

var size = browser.driver.findElements(by.xpath("...")).then(function(eles){
  // eles is a javascript array
  return eles.length;
});

expect(size).toEqual(2) // use jasmine assertion api

expect(size).to.eventually.be(2) // use chai and chai-as-promised assertion api