Ошибка "AssertionError" в скрипте
Всем привет! Мне необходимо настроить в конце скрипта сравнение "эталонного" текста уведомления с тем что на сайте. В данный момент повляется ошибка "AssertionError: assert 'Payment was succesfull' is True". Не могу понять в чем ошибка и как нужно написать правильно. Сам код:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
import pytest
@pytest.fixture(scope="module")
def browser():
browser = webdriver.Chrome()
browser.implicitly_wait(5)
return browser
def test(browser):
login_link = 'ссылка на сайт'
browser.get(login_link)
name_login = 'username'
name_password = 'password'
button = 'login-page__submit'
browser.find_element_by_name(name_login).send_keys('логин')
browser.find_element_by_class_name(button).click()
browser.find_element_by_name(name_password).send_keys('пароль')
browser.find_element_by_class_name(button).click()
time.sleep(2)
correct_link = 'ссылка на url после авторизации'
testing_link = browser.current_url
assert correct_link == testing_link, "Incorrect login"
xpath_test1 = 'сам xpath'
xpath_test2 = 'сам xpath'
browser.find_element_by_xpath(xpath_test1).click()
browser.find_element_by_xpath(xpath_test2).click()
xpath_plus_test = 'сам xpath'
xpath_Add_to_cart_test ='сам xpath'
xpath_continue='сам xpath'
time.sleep(1)
xpath_continue2='сам xpath'
browser.find_element_by_xpath(xpath_plus_test).click()
browser.find_element_by_xpath(xpath_Add_to_cart_test).click()
browser.find_element_by_xpath(xpath_continue).click()
browser.find_element_by_xpath(xpath_continue2).click()
time.sleep(15)
class_message="Alert-message"
browser.find_element_by_class_name(class_message)
true = class_message="Payment was succesfull"
assert true is True #на этой строке выдаёт ошибку
assert true is False
Ответы (1 шт):
Автор решения: Vladimir Obrizan
→ Ссылка
Если вы хотите получить текст элемента, то записать нужно концовку вот так:
class_message = "Alert-message"
# Находим элемент по классу и читаем текст элемента.
alert_text = browser.find_element_by_class_name(class_message).text
# Сравниваем текст алерта с ожидаемым.
assert alert_text == "Payment was succesfull"
Последний assert вообще избыточен, он не нужен. Еще обратите внимание: у вас орфографическая ошибка в слове "succesfull", но если на сайте тоже ошибка, то исправлять в тесте не нужно.