众所周知,我们在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