Метод setValue в Nightwatch не работает - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь настроить новый проект Nightwatch с целью автоматизации простой страницы поиска Google. Мой запрос на окно поиска присутствует на странице , но я не могу выполнить какое-либо действие мыши / клавиатуры над элементами (Searchbox или SearchButton)

Примечание: Я использую версию Nightwatch 1.0.

Контрольный пример:

module.exports = {
  before : function(browser) {
   browser.globals.waitForConditionTimeout = 5000;
  },
    tags: ['google'],
    'Demo test Google' : function (browser) {
         browser 
         .url('http://www.google.com') // Go to a url
         .waitForElementVisible('body', 10000) // wait till page loads
         .pause(2000)
         .assert.title('Google') // Make sure Site title matches
         .assert.visible('input[name=q]') 
         .setValue('input[name=q]', 'nightwatchjs') // send values
         .click('button[name=btnG]') // click on search box
         .pause(1000)
         .end()
       },
};

Я также пытался использовать этот подход:

var setValue =  function(sel, value) {
  $(sel).val(value).change();
};
module.exports = {
  before : function(browser) {
       browser.globals.waitForConditionTimeout = 5000;
  },
    tags: ['google'],
    'Demo test Google' : function (browser) {
         browser 
         .url('http://www.google.com') // Go to a url
         .waitForElementVisible('body', 10000) // wait till page loads
         .pause(2000)
         .assert.title('Google') // Make sure Site title matches
         .assert.visible('input[name=q]') 
         .execute(setValue, ['input[name=q]', 'nightwatchjs'])
         .click('button[name=btnG]') // click on search box
         .pause(1000)
         .end()
       },
};

Это выходной журнал:

[Google] Test Suite

Запуск: демонстрационный тест Google

  • √ Элемент был виден после 133миллисекунды.
  • √ Проверка, равняется ли заголовок страницы "Google" - 18 мс.
  • √ Проверка, видим ли элемент - 61 мс.

Журнал ошибок:

Ошибка при выполнении действия протокола .setElementValue (): неизвестная ошибка: отсутствует результат вызова функции 'value'

TimeoutError: Произошла ошибка при запуске .setValue() команда on: {"status": - 1, "state": "", "value": {"message": "неизвестная ошибка: в результате вызова функции отсутствует 'value'", "error": ["(SessionИнформация:chrome = 77.0.3865.120) "," (Информация о драйвере: chromedriver = 2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f), платформа = Windows NT 10.0.17763 x86_64) "]}," errorStatus ": 13, вызов" error ": неизвестно: ошибка: неизвестнарезультат функции отсутствует 'value' "," httpStatusCode ": 200} в process._tickCallback (internal / process / next_tick.js: 68: 7) NoSuchElementError: Произошла ошибка при выполнении команды .click () для: at process._tickCallback (внутренняя / process / next_tick.js: 68: 7)

1 Ответ

0 голосов
/ 18 октября 2019

Попробуйте сначала нажать () на входе, а затем использовать setValue (), иногда это помогает

...