Я пытаюсь написать простой скрипт в nightwatch. js, который откроет Google и введет текст в поле поиска. Я сталкиваюсь с проблемой использования обоих методов setValue()
для отправки текста в элемент.
Вот мой сценарий:
module.exports = {
'Search bar displayed on Google Home Page'(driver) {
driver
.url('http://www.google.com')
.assert.urlContains('google')
.assert.title('Google')
.waitForElementPresent('input[title="Search"]')
.pause(5000)
.setValue('input[title="Search"]', 'test123') // error happens here
.end()
},
}
При использовании setValue()
я вижу следующее ошибка:
Ошибка при выполнении действия протокола .setElementValue (): TypeError [ERR_UNESCAPED_CHARACTERS]: Ошибка при попытке создать HTTP-запрос для объекта "/ wd / hub / session / ed0680ce58544facf2a4b193eccbc223 / element / [объект / value ": Путь запроса содержит неэкранированные символы в новом ClientRequest (_http_client. js: 115: 13) в Object.request (http. js: 42: 10) в HttpRequest.createHttpRequest в новом Promise () в Selenium2Protocol. sendProtocolAction
По какой-то причине .setValue()
пытается отправить Object object
в качестве идентификатора WebElement
в URL-адресе запроса.
Сценарий успешно выполняет assert
и .waitForElementPresent('input[title="Search"]')
, поэтому я знаю, что элемент находится на странице. Я добавил pause(5000)
, чтобы у страницы было достаточно времени для загрузки, прежде чем пытаться отправить ключи. Я также попытался запустить .click()
до .keys()
, чтобы попытаться сфокусировать элемент.
Я считаю, что синтаксис правильный, но я все еще новичок в nightwatch, так что это также может быть проблемой.
У этого пользователя почти та же проблема, что и у меня, но нет ответа: Метод setValue в Nightwatch не работает
Я использую chromedriver
версия 80.0.3987.16
Я использую nightwatch
версию 1.3.4
Я установил chromedriver
- npm
, используя npm install chromedriver
и установил путь к chromedriver.exe
в моем файле nightwatch.json
:
{
"src_folders" : ["tests"],
"output_folder" : "reports",
"custom_commands_path" : "",
"custom_assertions_path" : "",
"page_objects_path" : "./page_objects",
"globals_path" : "",
"selenium" : {
"start_process" : true,
"server_path" : "./node_modules/selenium-standalone/.selenium/selenium-server/3.141.5-server.jar",
"log_path" : "./reports",
"host": "127.0.0.1",
"port" : 4444,
"cli_args" : {
"webdriver.chrome.driver" : "./node_modules/chromedriver/lib/chromedriver/chromedriver.exe",
"webdriver.gecko.driver" : "",
"webdriver.edge.driver" : ""
}
},
"test_settings" : {
"default" : {
"launch_url" : "http://localhost",
"selenium_port" : 4444,
"selenium_host" : "localhost",
"silent": true,
"screenshots" : {
"enabled" : false,
"path" : ""
},
"desiredCapabilities": {
"browserName": "chrome",
"marionette": true,
"javascriptEnabled": true,
"acceptSslCerts": true
}
},
"chrome" : {
"desiredCapabilities": {
"browserName": "chrome"
}
}
}
}
Может кто-нибудь помочь мне понять, в чем здесь проблема?