Коллеги, всем привет! Буду очень благодарна за помощь, т.к. я пока только стажёр, и в своей команде единственная занимают автотестами.
Есть подзадача: проверить соответствие фактического урла ожидаемому. Вот такой код наваяла я:
@allure.step("Проверка того, что открыта главная страница")
def test_check_summary_url(self):
#создаю функцию, которая проверяет соответствие урла
#создаю функцию, которая проверяет соответствие урла
browser.open(Urls.SUMMARY_URL)
#браузер открывает главную страницу
#браузер открывает главную страницу
actual_url = browser.s.summary_row.get_attribute("href")
#извлекаю ссылку из селектора, присваиваю ее значение переменной actual_url
#извлекаю ссылку из селектора, присваиваю ее значение переменной actual_url
expected_url_left = "SummaryPage.url"
#присваиваю значение ожидаемой ссылки переменной
#присваиваю значение ожидаемой ссылки переменной
try:
assert actual_url == expected_url_left
#сравниваю фактическое и ожидаемое
#сравниваю фактическое и ожидаемое
print("Заданная страница соответсвует ожидаемой")
#здесь и ниже мой костыльный вариант с выводом текста
#здесь и ниже мой костыльный вариант с выводом текста
except:
print("Заданная страница не соответсвует ожидаемой")
finally:
self.browser.open("SummaryPage.url") #если вдруг тест упал, то открываем заново главную страницу
код попросили привести в соответствие вот этому: я понимаю, что делает код ниже, но как объединить два варианта - не соображу
@allure.step('Ожидание соответствия текущего URL страницы заданному {expected_url}')
def check_url(expected_url):
browser.wait_until(have.url(expected_url))
actual_url = browser.driver.current_url
message = f'Открыта некорректная страница!\nОткрыта страница: {actual_url}\nОжидаемая страница: {expected_url}'
assert expected_url in actual_url, message
def wait_clickable(element, timeout) -> SeleneElement:
try:
element.should_be(be.clickable, timeout)
except TimeoutException:
raise ElementClickInterceptedException(f"Элемент {element} не кликабельный!")
return element