Size: a a a

2020 September 07

SS

Serhii Sobur in JS for testing
Valerii Synenko
Привет всем!
Пробую освоить wdio, написал простинький тест (логин в битбакет).
Но вот почемуто не получается.
wd вводит почту, кликает на кнопку "дальше" (тут должно появится поле для ввода пароля) и падает, так как ожидае увидеть поле "логин", но после клика на кнопку "дальше" сразу же падает с ошибкой - element not interactable. (ошибку я понемаю но непонимаю почему wd не ждет появления след елемента)
Если наты кать пауз в каждий степ то все проходит.
Что может быть не так?

PS: у меня вот так от - "@wdio/sync": "^6.4.5"
в моем понемании должно как то все виполнятся шаг за шагом.
Прежде чем как-то взаимодействовать со страницей, нужно дождаться нужного элемента. Инструмент просто последовательно выполняет написанный Вами код, он ничего не знает о состоянии страницы
источник

SS

Serhii Sobur in JS for testing
Вам нужно что-то типа 'browser.wait(element.isVisible)'.
Только используйте механизм, предоставляемый Вашим инструментом
источник

SS

Serhii Sobur in JS for testing
Valerii Synenko
Привет всем!
Пробую освоить wdio, написал простинький тест (логин в битбакет).
Но вот почемуто не получается.
wd вводит почту, кликает на кнопку "дальше" (тут должно появится поле для ввода пароля) и падает, так как ожидае увидеть поле "логин", но после клика на кнопку "дальше" сразу же падает с ошибкой - element not interactable. (ошибку я понемаю но непонимаю почему wd не ждет появления след елемента)
Если наты кать пауз в каждий степ то все проходит.
Что может быть не так?

PS: у меня вот так от - "@wdio/sync": "^6.4.5"
в моем понемании должно как то все виполнятся шаг за шагом.
источник

S

Stas in JS for testing
у wdio есть команда waitForDisplayed
https://webdriver.io/docs/api/element/waitForDisplayed.html
источник

SS

Serhii Sobur in JS for testing
источник

SS

Serhii Sobur in JS for testing
Используйте то, что Вам больше подходит
источник

VS

Valerii Synenko in JS for testing
Всем спасибо за помощь!
Я чет просто думал что в wd есть какойнить стандартий тайминг с каким-то пулингом, аля селениумовского.
В ключе с waitFor... и waitUntil, кажется что на каждый елемент надо вешать один из методов waitFor... или waitUntil.
источник

E

Eugewa in JS for testing
Valerii Synenko
Всем спасибо за помощь!
Я чет просто думал что в wd есть какойнить стандартий тайминг с каким-то пулингом, аля селениумовского.
В ключе с waitFor... и waitUntil, кажется что на каждый елемент надо вешать один из методов waitFor... или waitUntil.
Не надо.
wd = wdio?
В любом случае, даже в голом селениуме эта проблема решалась для начала имплиситом, а уже потом эксплитит вейтом.
Время имплисита вкусовщина, зависит от перформанса приложения и енва на котором проходит ран, но не рекомендовал бы ставить более 5 секунд.
https://webdriver.io/docs/timeouts.html#session-implicit-wait-timeout
источник

G

Genn in JS for testing
У нас и по 20 секунд могло
источник
2020 September 08

FA

Fedor Altunin in JS for testing
Всем привет, подскажите пожалуйста при запуске тестов через wdio-chromedriver-service, можно ли как-то настроить запуск на удаленном сервере? В wdio.conf.js пробовал задавать baseUrl  и port - не помогло. Начинаю сомниваться, что это возможно с chromedriver service. Запуск происходит всегда локально но на рандомных портах, вроде этого
источник

OK

Oleksandr Khotemskyi in JS for testing
Fedor Altunin
Всем привет, подскажите пожалуйста при запуске тестов через wdio-chromedriver-service, можно ли как-то настроить запуск на удаленном сервере? В wdio.conf.js пробовал задавать baseUrl  и port - не помогло. Начинаю сомниваться, что это возможно с chromedriver service. Запуск происходит всегда локально но на рандомных портах, вроде этого
через chromedriver - нет
источник

OK

Oleksandr Khotemskyi in JS for testing
Fedor Altunin
Всем привет, подскажите пожалуйста при запуске тестов через wdio-chromedriver-service, можно ли как-то настроить запуск на удаленном сервере? В wdio.conf.js пробовал задавать baseUrl  и port - не помогло. Начинаю сомниваться, что это возможно с chromedriver service. Запуск происходит всегда локально но на рандомных портах, вроде этого
baseUrl - это не адрес твоего селениум сервера, это url твоего site-under-test
источник

OK

Oleksandr Khotemskyi in JS for testing
Fedor Altunin
Всем привет, подскажите пожалуйста при запуске тестов через wdio-chromedriver-service, можно ли как-то настроить запуск на удаленном сервере? В wdio.conf.js пробовал задавать baseUrl  и port - не помогло. Начинаю сомниваться, что это возможно с chromedriver service. Запуск происходит всегда локально но на рандомных портах, вроде этого
тебе нужно выключить chromedriver-service, если собираешься запускать на чем то вроде селеноида или грида или сауслаб - то он тебе не нужен.

Тебе нужно указать в конфиге host, port, и возможно path
источник

FA

Fedor Altunin in JS for testing
Oleksandr Khotemskyi
тебе нужно выключить chromedriver-service, если собираешься запускать на чем то вроде селеноида или грида или сауслаб - то он тебе не нужен.

Тебе нужно указать в конфиге host, port, и возможно path
Окей, понял. Спасибо)
источник

VS

Valerii Synenko in JS for testing
Привіти!
Намагаюся написати тест для перевірки ерормеседжа.
Вводжу невалідні дані, з'являється ерора і я намагаюся перевірити її текст, але отримую:

- Expected  - 1
+ Received  + 2

- Incorrect email address and / or password. Do you need help logging in?
+ Incorrect email address and / or password.
+ Do you need help logging in?

Виглядає так, як наче 1 елемент повертає 2 стрінги, але ци якось дивно.
Хтось може чимось допомогти чи щось порадити?
источник

G

Genn in JS for testing
А шо в dom?
источник

VS

Valerii Synenko in JS for testing
Genn
А шо в dom?
1 div в якому ті "дві" стрінги розділені через <br>
источник

G

Genn in JS for testing
br - это перенос (перевод) строки
источник

G

Genn in JS for testing
Все правильно
источник

G

Genn in JS for testing
html, все дела
источник