Jasmine “如何修复”;无法读取属性';应用';“未定义”的定义;尝试使用量角器获取位置?
我正在尝试使用量角器(v6.0.0)方法调用getLocation()获取元素的位置,但是出现以下异常:Jasmine “如何修复”;无法读取属性';应用';“未定义”的定义;尝试使用量角器获取位置?,jasmine,protractor,Jasmine,Protractor,我正在尝试使用量角器(v6.0.0)方法调用getLocation()获取元素的位置,但是出现以下异常: TypeError: Cannot read property 'apply' of undefined at <Jasmine> at actionFn (/usr/lib/node_modules/protractor/built/element.js:95:44) at <Jasmine> at actionResults.getWebElements.then
TypeError: Cannot read property 'apply' of undefined
at <Jasmine>
at actionFn (/usr/lib/node_modules/protractor/built/element.js:95:44)
at <Jasmine>
at actionResults.getWebElements.then(/usr/lib/node_modules/protractor/built/element.js:468:44)
at <Jasmine>
at ElementArrayFinder.applyAction_(/usr/lib/node_modules/protractor/built/element.js:466:29)
我需要id为mat-input-1的输入坐标,但不幸的是,我得到了该异常。量角器有一个指向的链接,它列出:
W3C WebDriver规范遵从性的更改
- 将WebElement.getSize()和WebElement.getLocation()替换为 单个方法,WebElement.getRect()
现在对于量角器6本身,这显然是一个文档问题。我们建议现在就使用5.4.2。这段代码会引发异常,这真的很奇怪。堆栈跟踪提到了
applyAction
和getWebElements
,它们是ElementArrayFinder
方法,因此我希望代码涉及元素。所有或$
都在某个地方。您确定该行正在抛出该异常吗?也许它是在代码中的另一个点上释放的?谢谢,你完全正确!我用的是5.4.2,一切都很有魅力。正如你所说的,文档在这个意义上并不清楚,实际上量角器网页昨天已经好几个小时没有工作了。是的。我没有更新到6,实际上我们从npm中删除了“最新”标记,因此如果您安装了npm量角器,最新的是5.4.2。我们将有更多关于所有这些更改的文档。如果您想开始,最好的第一步是将所有内容移动到async/await。
it('should compare login page with a baseline', async () => {
let input = element(by.id('mat-input-1'));
await input.getLocation();
});