众所周知,Java在硒中有类似的东西。
driver.findElementsByXPath("xxx").isEmpty()
JavaScript中是否有类似的东西可以使用量角器进行自动化测试?
注意事项:我使用的应用程序不是有角度的应用程序。
我的代码块经过:
if(browser.driver.findElementsByXPath("xxx").isEmpty()){
console.log();
}
我尝试过的函数是:isDisplayed().toBeTruthy();
我得到的错误是:findElement(...)。isDisplayed(...)。toBeTruthy不是函数
答案 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文档和源代码中找到更多详细信息。
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