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

Фотография

Python + Selenium.Webdriver не видит элемент


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 MrThinker

MrThinker

    Новый участник

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Коротков Дмитрий Анатольевич

Отправлено 25 сентября 2020 - 03:55

Для создания теста необходимо, чтобы selenium нажимал на кнопку: 

image.jpg

 

Вот сам код:

from selenium import webdriver
import time
driver = webdriver.Chrome()


driver.get("link")
time.sleep(2)
driver.find_element_by_class_name("sqdOP yWX7d _8A5w5 ").click()

 

Задержку использовал, чтобы все элементы успели прогрузиться

 

На выходе получается следующая ошибка:

 

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".sqdOP yWX7d     _8A5w5    "}
  (Session info: chrome=85.0.4183.121)

 

Около двух часов лазил на всяких форумах, но так и не нашел ответа. Буду искренне благодарен, если поможете.

 

P.S. Версии Python, Selenium.webdriver и Chrome установлены последние.


  • 0

#2 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 25 сентября 2020 - 06:04

Не цепляйтесь к значениям классов, они могут измениться в новой версии приложения.

Если трудно - используйте xpath.


  • 1

#3 MrThinker

MrThinker

    Новый участник

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Коротков Дмитрий Анатольевич

Отправлено 25 сентября 2020 - 07:39

Не цепляйтесь к значениям классов, они могут измениться в новой версии приложения.

Если трудно - используйте xpath.

Хорошо, приму к сведению. Попробовал через полный путь Xpath, все получилось))


  • 0

#4 romantiqueam

romantiqueam

    Новый участник

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Нечаев Антон

Отправлено 23 ноября 2020 - 13:25

В будущем, если хотите привязываться к имени класса - используйте в xpath функцию contains и цепляйте часть файла, так как в основном коде у вас имя класса с пробелом. В моей практике в случае с пробелом всегда были проблемы, поэтому лучше пользоваться формой xpath //element[contains(@class, "part-of-classname")]. Тогда у вас должно находить по имени класса)


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных