Я пытался запустить тестовые примеры e2e для приложения React, используя Nightwatch.js + Saucelabs, но при выполнении метода .click () возникает ошибка ниже.
Ошибка:
Произошла ошибка при запуске команды .click () для: {"status": - 1, "state": "", "value": "{\" value \ ": {\" stacktrace \ ": \" Backtrace: \ n \ tOrdinal0 [0x00E07DF3 + 1474035] \ n \ tOrdinal0 [0x00D807D1 + 919505] \ n \ tOrdinal0 [0x00D1CB43 + 510787] \ n \ tOrdinal0 [0x00CCDB60 + 187232] \ 0 \ 0O0 + 0 0 180 0 0 0 0 0 0 0 0 0 0,80 0,80 0 0 0 0 0 0 0 0 0,80 0,80 / 0c0 [0/0] 080 [00] 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "005-" -080-080, 080 080 из 080 080 080 из 080 [080 0 0 0 0 0 0 0 080 080 0 0 0 0 0 0 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 зац за 0 0 0 0 0 0 0 00 00080 0 0 0 0 0 00080 0x00CA1BAB + 7083] \ n \ tOrdinal0 [0x00CA2126 + 8486] \ n \ tOrdinal0 [0x00CA2F00 + 12032] \ n \ tGetHandleVerifier [0x00F6231C + 1249612] \ n \ tGetHandleVerifier [0x00515] 0 [0] 0E0B0155/5E600E155 n \ tOrdinal0 [0x00E15D28 + 1531176] \ n \ tGetHandleVerifier [0x00EB1D4A + 527226] \ n \ tOrdinal0 [0x00D975F6 + 1013238] \ n \ tOrdinal0 [0x00D9746F + 1012847] \ 0A0 + 067 0 0 0 0 0 0 0 0 0 0 6 0 000 0… 067 +0 670 +5962] \ n \ tGetHandleVerifier [0x0120992C + 4032348] \ n \ tBaseThreadInitThunk [0x774438F4 + 36] \ n \ tRtlUnicodeStringToInteger [0x77B35E13 + 595] \ n \ tRtlUnicode \ 0 \ 0 \ \ "\ 0D0: \ "неверный аргумент: пропущены параметры команды \", \ "error \": \ "неверный аргумент \"}} "," errorStatus ": - 1," e rror ":" Произошла неизвестная ошибка. "," httpStatusCode ": 400}
Ниже находится объект страницы:
module.exports = {
url: function () {
return this.api.launchUrl
},
elements: {
app: { selector: 'div[id="app"]' },
login_usernameInput: { selector: 'input[id="user_id"]' },
login_passwordInput: { selector: 'input[id="password"]' },
login_submitButton: { selector: 'button[id="submit"]' }
},
commands: [
{
login () {
return this
.waitForElementPresent('span[id=welcomeToMyApp]')
.setValue('@login_usernameInput', process.env.APP_USERNAME)
.setValue('@login_passwordInput', process.env.APP_PASSWORD)
.click('@login_submitButton')
.waitForElementPresent('@app')
}
}
]
}
Тестовый код:
module.exports = {
beforeEach: (browser, done) => {
browser.page.loginPage()
.navigate()
.login()
done()
},
'Test - DQM Page': function (browser) {
const dqmPage = browser.page.dqmPage()
dqmPage
.navigate()
.waitForElementVisible('body')
.click('@nextCountryTab')
.assert.visible('@nextCountry')
.end()
},
afterEach: (browser, done) => {
browser.custom().end()
setTimeout(function () {
done()
}, 200)
}
}
Все остальные шаги, до нажатия click () в методе login (), работают отлично. Даже функции setValue () выполняются довольно хорошо.
Обратите внимание, что кнопка «Отправить» в значительной степени видна и активна.