Protractor 失败:无法读取属性';findElementsOverride';未定义的
我有以下测试:Protractor 失败:无法读取属性';findElementsOverride';未定义的,protractor,Protractor,我有以下测试: it('diplays the currency and description of a valid account', function () { common.setValueForInput("CH3809000000911058770", page.inputs.css.zahlungKontoIban).then( function () { return
it('diplays the currency and description of a valid account', function () {
common.setValueForInput("CH3809000000911058770", page.inputs.css.zahlungKontoIban).then(
function () {
return element(page.buttons.empfaengerKontoValidieren).click();
})
.then(function () {
return expect(element(by.id("zahlungKontoIbanFehler")).isDisplayed())
.toBeFalsy('an error message must not be shown when the accounts are different');
})
.then(function(){
browser.pause();
expect(element(by.id("zielwaehrung")).getAttribute("innerHTML"))
.toContain('CHF', 'the currency for CH3809000000911058770 is CHF')
expect(element(by.id("empfaengerName")).getAttribute("innerHTML"))
.toContain('Test Bezeichnung 2', 'the description for CH3809000000911058770 is Test Bezeichnung 2')
})
});
它在堆栈跟踪中失败:
AccountClosing - UI009.1 account validation account validation diplays the currency and description of a valid account
Message:
Failed: Cannot read property 'findElementsOverride' of undefined
Stack:
TypeError: Cannot read property 'findElementsOverride' of undefined
at C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\lib\element.js:134:20
at goog.async.run.processWorkQueue (C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\async\run.js:124:15)
at process._tickDomainCallback (internal/process/next_tick.js:129:7)
Error
at ElementArrayFinder.applyAction_ (C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\lib\element.js:382:21)
at ElementArrayFinder.(anonymous function) [as getInnerHtml] (C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\lib\element.js:78:17)
at ElementFinder.(anonymous function) [as getInnerHtml] (C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\lib\element.js:711:7)
at C:\beam-app\accountClosing\ui009\e2e\accountClosing_ui009_1_e2e_test.ts:94:59
at goog.async.run.processWorkQueue (C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\async\run.js:124:15)
at process._tickCallback (internal/process/next_tick.js:103:7)
From: Task: Run it("diplays the currency and description of a valid account") in control flow
at Object.<anonymous> (C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd2\index.js:81:14)
at attemptAsync (C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:1819:24)
at QueueRunner.run (C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:1774:9)
at QueueRunner.execute (C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:1762:10)
at Spec.Env.queueRunnerFactory (C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:627:35)
at Spec.execute (C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:353:10)
at Object.fn (C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:2360:37)
at attemptAsync (C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:1819:24)
at QueueRunner.run (C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:1774:9)
at C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:1801:16
From asynchronous test:
Error
at Suite.<anonymous> (C:\beam-app\accountClosing\ui009\e2e\accountClosing_ui009_1_e2e_test.ts:83:13)
at addSpecsToSuite (C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:743:25)
at Env.describe (C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:713:7)
at jasmineInterface.describe (C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:3219:18)
at Suite.<anonymous> (C:\beam-app\accountClosing\ui009\e2e\accountClosing_ui009_1_e2e_test.ts:65:9)
at addSpecsToSuite (C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:743:25)
at Env.describe (C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:713:7)
at jasmineInterface.describe (C:\Users\roonm\AppData\Roaming\npm\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:3219:18)
at Suite.<anonymous> (C:\beam-app\accountClosing\ui009\e2e\accountClosing_ui009_1_e2e_test.ts:36:5)
我放置browser.pause()
,检查元素是否确实存在,并且它们是否存在
此消息的含义是什么以及如何调试它?
getInnerHtml
方法现在已被弃用。请改用getAttribute(“innerHTML”)
。错误源于之前的调用过多
我错误地认为,before
应用于调用它的descripe
。事实证明并非如此,当你用浏览器在之前调用5次时,把放进去会把事情搞砸
在每次调用之前,我将多次调用替换为对的一次调用,现在一切都很好。这是另一种方法。。但是getInnerHtml()
也应该正常工作?getInnerHtml
最近被弃用(从4.0.0版开始)。看见你能用.getText()
来代替吗?听起来很奇怪,你能做一个可复制的样本吗?谢谢
expect(element(page.zielwaehrung).getInnerHtml())
.toContain('CHF', 'the currency for CH3809000000911058770 is CHF')