Подождите, пока элемент больше не будет отключен в nightwatchjs - PullRequest
1 голос
/ 07 ноября 2019

Я запускаю свой тестовый скрипт nightwatchjs для опций выпадающего меню для автомобиля марка и модель .

Прежде чем выбрать марку автомобиля,элемент модели корректно отключен и выглядит следующим образом:

enter image description here

Когда я выбираю марку, элемент модели становится активным, а часть деактивированнойудаляется.

Однако я хотел бы использовать форму ожидания, чтобы остальная часть сценария ожидала, пока элемент не будет включен, прежде чем продолжить.

В настоящее времяУ меня есть следующий код:

browser.expect.element('#bfsDesktopFilters #ddl-model').to.be.enabled;

, который работает большую часть времени, но иногда происходит небольшая задержка загрузки выпадающего списка модели, и тест не проходит.

Есть ли способ сделать это (я действительно не хочу использовать паузу)?

Я пытался;

waitForElementToBeEnabled
waitForElementToBeClickable 

но безуспешно.

Спасибо.

1 Ответ

0 голосов
/ 13 ноября 2019

Я бы попытался использовать функцию getAttribute, которая бы принимала 3 аргумента;элемент, атрибут, обратный вызов. Передайте res var в обратном вызове и используйте значение res, чтобы получить его состояние. Кроме того, не уверен, почему вы должны использовать 2 #id локатора, 1 должно быть достаточно. Как то так:

driver.getAttribute('#bfsDesktopFilters', 'disabled', function(res) {
   // check res.value here and do something
})
...