首页 > 解决方案 > 量角器断言元素不可见

问题描述

在我们的网站上有一个隐藏/取消隐藏菜单的图标。我创建了以下脚本来测试它:

 it('Hamburger Menu Click Validation', function () {
    expect(Hamburger_Menu.isDisplayed());
    Hamburger_Menu.click();
    browser.sleep(1000);
    expect(foo.isDisplayed()).toBe(false);
    Hamburger_Menu.click();
    browser.sleep(1000);
    expect (foo.isDisplayed().toBe(true));
    // expect (invisibilityOf())
})

语句“expect(foo.isDisplayed()).toBe(false);” 是从这个网站复制的。我看不出它失败的任何原因,但是当我运行测试时,我收到以下错误,它表示 :foo.isDisplayed(...).toBe 不是函数!. 如何使用期望功能验证菜单是否隐藏?

estBed 测试汉堡菜单单击验证消息:失败:foo.isDisplayed(...).toBe 不是函数堆栈:TypeError:foo.isDisplayed(...).toBe 不是 UserContext 中的函数。(C:\FCPS_I\FCPS\FCPS\TestBed.js:16:35) 在 C:\Users\User\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd2\index.js:112:25 在新的 ManagedPromise (C:\Users\User\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:1077:7) 在 ControlFlow.promise (C:\Users\User\AppData\Roaming\ npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2505:12) 在 schedulerExecute (C:\Users\User\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd2\index.js: 95:18) 在 TaskQueue.execute_ (C:\Users\User\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:3084: 14) 在 TaskQueue.executeNext_ (C:\Users\User\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:3067:27) 在 asyncRun (C:\Users\User\ AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2927:27)在 C:\Users\User\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\ lib\promise.js:668:7 at process._tickCallback (internal/process/next_tick.js:68:7) 来自:任务:在 UserContext 的控制流中运行它(“Hamburger Menu Click Validation”)。(C:\Users\User\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd2\index.js:94:19)来自异步测试:套件出错。(C:\FCPS_I\FCPS\FCPS\TestBed.js:9:5) 在对象。(C:\FCPS_I\FCPS\FCPS\TestBed.js:1:63) 在 Module._compile (internal/modules/cjs/loader.js:689:30) 在 Object.Module._extensions..

标签: javascriptjasmineprotractor

解决方案


您只是错误地关闭了括号:

expect(foo.isDisplayed()).toBe(true);

推荐阅读