Как использовать инструмент JavaScript Selenium под названием NightWatch, что является хорошей практикой для определения частей графического интерфейса перед применением теста? Например, найти, есть ли на A или B, а затем провести отдельные тесты. Другой пример: определите, вошли ли вы в систему, чтобы вы не продолжали входить в систему и т. Д. Кажется, когда я использую оператор if
с селекторами, он хочет потерпеть неудачу, если я получу параметр else
.
Я использовал Python API в течение длительного времени, и у вас есть доступ ко всем библиотекам Python, вы можете использовать Selenium Selectors для проверки, без ошибок и т. д. Я даже использовал npm Selenium API с аналогичными результатами, хотя все еще зеленый как это работает, но я не могу заставить слой NightWatch делать что-то еще, кроме прохождения или неудачи E2E, независимо от того, что я пытаюсь.
Я полагаю, что выложу это там, чтобы увидеть, делаю ли я это неправильно или это обычная проблема. Или, может быть, есть другие библиотеки, предназначенные для помощи в том, что я ищу. Мы будем очень признательны за любой вклад.
Вот общий пример на Python, который я мог бы использовать для проверки параметров A/B, которые работают...
# so you know what EC is
from selenium.webdriver.support import expected_conditions as EC
...
try:
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#foo')))
driver.find_element_by_css_selector('#blah1 a').click()
except:
driver.find_element_by_css_selector('#blah2 a').click()
И еще один, возможно, более чистый способ сделать это в Python...
if len(driver.find_elements_by_css_selector('#blah1 a')) > 0:
driver.find_element_by_css_selector('#blah1 a').click()
else:
driver.find_element_by_css_selector('#blah2 a').click()
Очевидно, что здесь требуется больше логики, поскольку у него нет всех встроенных модулей, которые есть у ночного дозора, но это должно дать некоторое представление о том, что я пытаюсь сделать.