量角器断言元素不可见

时间:2018-12-21 21:05:14

标签: javascript jasmine protractor

在我们的网站上,有一个图标可以隐藏/取消隐藏菜单。我创建了以下脚本对其进行测试:

 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);”从此website复制。我没有看到它失败的任何原因,但是当我运行测试时,出现以下错误,它表示:foo.isDisplayed(...)。toBe不是函数! 。如何验证是否使用Expect函数隐藏了菜单?

  

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.executeNext_(C:\ Users \ User \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ selenium-webdriver \ lib \ promise.js:3084:14)在asyncRun(C:\ Users \ User \ AppData \ Roaming \ npm \ node_modules \ protractor \下的Users \ User \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ selenium-webdriver \ lib \ promise.js:3067:27) node_modules \ selenium-webdriver \ lib \ promise.js:2927:27)位于C:\ Users \ User \ AppData \ Roaming \ npm \ node_modules \ protractor \ n ode_modules \ selenium-webdriver \ lib \ promise.js:668:7在process._tickCallback(internal / process / next_tick.js:68:7)来自:任务:在控制流中运行它(“ Hamburger Menu Click Validation”) UserContext。 (C:\ Users \ User \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ jasminewd2 \ index.js:94:19)来自异步测试:Suite出错。 (C:\ FCPS_I \ FCPS \ FCPS \ TestBed.js:9:5)在对象处。 (C:\ FCPS_I \ FCPS \ FCPS \ TestBed.js:1:63)位于Object.Module._extensions..js(内部/模块)的Module._compile(internal / modules / cjs / loader.js:689:30) /cjs/loader.js:700:10)放在try.ModuleLoad(internal / modules / cjs / loader.js:538:12)上的Module.load(internal / modules / cjs / loader.js:599:32)

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

您也可以尝试

expect(foo.isDisplayed()).toBeTruthy();

提供ElementFinder类型的foo