Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查是否未显示元素-WebDriverJS_Javascript_Selenium_Selenium Webdriver_Automation_Webdriverjs - Fatal编程技术网

Javascript 检查是否未显示元素-WebDriverJS

Javascript 检查是否未显示元素-WebDriverJS,javascript,selenium,selenium-webdriver,automation,webdriverjs,Javascript,Selenium,Selenium Webdriver,Automation,Webdriverjs,使用selenium和webdriverJS我想创建一个测试来检查页面上是否没有显示元素。为了检查是否存在一个或多个元素,我决定使用isDisplayed()函数: driver.findElement(webdriver.By.css('.element')).isDisplayed(); 您知道类似的函数吗?如果元素未显示,则返回true isDisplayed()在单个元素上使用时效果良好。是否有类似的方法来检查是否显示多个元素 提前感谢您的回答 来回答您的问题- 不,如果元素不存

使用
selenium
webdriverJS
我想创建一个测试来检查页面上是否没有显示元素。为了检查是否存在一个或多个元素,我决定使用
isDisplayed()
函数:

driver.findElement(webdriver.By.css('.element')).isDisplayed();
  • 您知道类似的函数吗?如果元素未显示,则返回
    true
  • isDisplayed()
    在单个
    元素上使用时效果良好。是否有类似的方法来检查是否显示多个元素

提前感谢您的回答

来回答您的问题-

  • 不,如果元素不存在,则没有返回true的函数。您可以在现有的
    isDisplayed()
    方法上检查否定(false)条件。您可以在WebDriverJ中使用各种测试框架,并执行错误的断言,如jasmine、mocha等。。。及
  • 如果要检查是否显示了多个图元,则可以使用内置循环,如or或(仅当使用单个定位器可以获得多个图元时才适用),或者必须单独检查它们

希望这能有所帮助。

我将展示如何使用jasmine解决问题,以防将来有人需要它:

driver.findElement(webdriver.By.css('.element')).isDisplayed()
    .then(function(displayed) {
        expect(displayed).not.toBe(true);
    });
isDisplayed()在单个元素上使用时效果良好。有没有 检查是否显示多个元素的类似方法

这可以通过使用解决。例如:

element.all(by.css(".element")).map(function (elm) {
    return elm.isDisplayed();
});
这将返回一个解析为布尔值数组的承诺

如果需要单个布尔值,可以使用:


我发现这个解决方案有效。代码评估元素的存在性并返回true或false。然后我可以评估这个值并在页面上执行其他操作。 仍有一些小错误:未能创建着色器缓存项:-2 `


听起来很合理。我还有一个问题:是否有类似于jasmine的
.not
的语法来检查函数或方法的否定条件?WebDriverJ中没有这样的东西。但是,您仍然可以将Jasmine与WebDriverJ一起使用,并使用这些快捷方式。或者你也可以使用Mocha测试框架。他们强迫我使用jasmine,所以我必须坚持使用:)谢谢你的帮助!嘿,伙计,很高兴再次见到你:)我会查一下,但首先要问一个问题:是否也可以将
量角器
术语与
茉莉花
?@d_z90好吧,如果你的网站是非角度的,你仍然可以使用量角器,而且它是语法糖。谢谢
element.all(by.css(".element")).reduce(function (acc, elm) {
    return elm.isDisplayed().then(function (isDisplayed) {
        return isDisplayed && acc;
    });
}, false);
const exit =await driver.findElement(By.css('input[id^="Login"] ')).then(
()=>{return true} ). catch((err=> { if(err.name=== "NoSuchElementError") return false;
throw new Error (" No such element")}));

const check= (elem) => {
    return new Promise( (resolve,reject)=> {
        setTimeout(elem=> { 
            if( elem ===true) {resolve('HA-HA-HA') }
            else {reject(new Error('Not ha-ha-ha'))}
        },500,elem)

       })
   };
`