Перейти к содержимому

Dmitry1199

Регистрация: 06 фев 2023
Offline Активность: 19 мар 2023 19:51
-----

Мои сообщения

В теме: Selenium не видит атрибут?

08 февраля 2023 - 09:34

А какая сейчас ошибка?

Вообще у вас проверка изначально не верная по логике. Вы пишите локатор, а потом пытаетесь получить тоже самое значение. Даже если получится получить значение атрибута, у вас получится "small"=="autotest@ya.ru"

Все исправил, у вас было верное замечание. Убрал атрибут вообще и поправил assert

from selenium import webdriver
import time
def test_registr():
    driver = webdriver.Chrome()
    driver.get("https://shop.synctoskill.com/")
    driver.maximize_window()
    driver.find_elements("xpath", '//a[@class="nav-link text-dark"]')[0].click()
    driver.find_element("name", 'Email').send_keys('autotest@ya.ru')
    driver.find_element("name", 'Password').send_keys('12345Qwer')
    driver.find_element("xpath", '//input[@value="Sign In"]').click()
    driver.find_element("xpath", '//a[@href="/Account/Profile"]').click()
    email = driver.find_element("xpath", '//p[2][@class="small"]')
    assert email.text == "Email: autotest@ya.ru"
    time.sleep(3)
    driver.close()

В теме: Selenium не видит атрибут?

08 февраля 2023 - 07:43

А почему вы ищете несколько элементов, а не один? У списка элементов не может быть атрибута. 

email = driver.find_elements("xpath", '//p[2][@class="small"]').__getattribute__("class")

Поэтому нужно использовать driver.find_element

Да, забыл поменять, просто до этого был немного другой xpath и находил по нему 2 элемента.

Но все же даже по одному элементу проблема так и осталась.