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



众所周知,我们在Java中也有这样的东西用于硒。

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

JavaScript 中有这样的东西吗??

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

我的代码块如下:

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

我尝试使用的功能是:isDisplayed().toBeTruthy();

我得到的错误是:findElement(...(。已显示(...(。toBeTruthy 不是一个函数

没有方法,因为量角器中的 isEmpty((至少在量角器官方 api 文档中不可用。但是是的,isEmpty((是一种java方法来验证字符串是否为空

isDisplay方法在量角器中的使用

var foo = element(by.id('foo')); // equivalent of driver.findElement(By.id("foo"))
expect(foo.isDisplayed()).toBe(true); // equivalent of assert in java/testng

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

- 如果字符串的长度为 0,则返回 true,

- 如果字符串的长度为>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(( 函数仅适用于字符串变量。

同样明智,您可以为protactor实现相同的内容。

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

findElements API doc

查找元素源代码

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

最新更新