isEmpty()无法在使用JavaScript的量角器中工作
我们都知道,Java中有类似于selenium的东西isEmpty()无法在使用JavaScript的量角器中工作,javascript,selenium-webdriver,protractor,Javascript,Selenium Webdriver,Protractor,我们都知道,Java中有类似于selenium的东西 driver.findElementsByXPath("xxx").isEmpty() JavaScript中是否有类似的东西用于使用量角器进行自动化测试 注意:我使用的应用程序不是angular应用程序 我的代码块经过: if(browser.driver.findElementsByXPath("xxx").isEmpty()){ console.log(); } 我尝试使用的函数是:isDisplayed().toBeTruthy(
driver.findElementsByXPath("xxx").isEmpty()
JavaScript中是否有类似的东西用于使用量角器进行自动化测试
注意:我使用的应用程序不是angular应用程序
我的代码块经过:
if(browser.driver.findElementsByXPath("xxx").isEmpty()){
console.log();
}
我尝试使用的函数是:isDisplayed().toBeTruthy()代码>
我得到的错误是:findElement(…).isDisplayed(…).toBeTruthy不是函数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()函数仅适用于字符串变量。
和wise一样,您也可以为Proactor实现相同的功能。在量角器中没有isEmpty()方法,至少在量角器官方api上是不可用的。但是yes isEmpty()是一个java方法,用于验证字符串是否为空
在量角器中显示方法的使用
var foo = element(by.id('foo')); // equivalent of driver.findElement(By.id("foo"))
expect(foo.isDisplayed()).toBe(true); // equivalent of assert in java/testng
Javascript API的所有量角器和selenium webdriver都是异步的,并返回承诺。更多细节可以在下面的API文档和源代码中找到
请注意,对于isDisplayed()
,即使元素本身未隐藏,空标记也会返回false。您还可以使用foo.idDisplayed().toEqual(“”)代码>我收到错误isDisplayed()不是量角器元素(by.xpath(“…”)中的函数。getText()
返回承诺。为了打印实际文本,必须实现如下回调:元素(by.xpath(“…”).getText().then(函数(结果){console.log(结果);})代码>。对于expect
这不是必需的,因为它知道如何处理承诺。
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