javascript - 量角器断言元素不可见
问题描述
在我们的网站上有一个隐藏/取消隐藏菜单的图标。我创建了以下脚本来测试它:
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..
解决方案
您只是错误地关闭了括号:
expect(foo.isDisplayed()).toBe(true);
推荐阅读
- linux - 从文件中读取字符串并使用 bash 将它们存储在多个变量中
- r - 将鼠标悬停在 d3heatmap 图中的事件上
- vuejs2 - vue中如何访问对象的对象方法
- cryptography - 椭圆(JS lib)和Bouncy Castle(.NET lib)之间的公钥推导不一致
- python - 在python中将函数指针作为参数传递时出错
- c++ - 在 C++ 中显示“匿名”变量创建警告
- node.js - 车把只执行 else 语句
- elasticsearch - 用于创建/更新文档日期的摄取管道
- javascript - 如何制作一个可以接受诸如stackoverflow标签选择之类的标签的文本框?
- c# - 如何处理网页 selenium c# 上的错误