t.me/atinfo_chat Telegram группа по автоматизации тестирования

Python selenium, не могу открыть изображение

python
selenium
webdriver
Теги: #<Tag:0x00007fb2f50b9b90> #<Tag:0x00007fb2f50b9a50> #<Tag:0x00007fb2f50b9910>

(Дмитрий) #1

Добрый день. Проблема заключается в том что я не могу подобрать селектор который был нашёл нужный мне элемент на странице. Этот элемент изображение.
Screenshot_13
Screenshot_14

Так как изображение не имеет класса и id пытался найти его по xpath, но не работает.
Ранее решал подобную проблему с помощью js скрипта, но с помощью dev tools получаю селектор который как я подозреваю не хочет работать из-за “\33” в его коде

Получаю вот такую ошибку:

Какие ещё есть способы нажать на эту картинку?


(Git Hb) #2

Вам нужно найти любой уникальный родительский элемент и от него написать локатор, например, если известен chat msg id сообщения то можно так:

chat_msg_id="33247711470"
img_xpath=".//div[contains(class@,'" + chat_msg_id + "')]//img"

или для msg id:

msg_id = "33247660660"
img_xpath=".//div[id@='" + msg_id + "')]//img"

(Evgenij Musatov) #3

Это изображение одно?
Если да, то попробуй через xpath с указанием параметров размеров изображения.

(By.XPATH, "//img[@width='50'][@height='50']")

Если изображений может быть несколько, то используй id сообщения

(By.XPATH, "//div[@id={}]//img".format(id))

(Evgenij Musatov) #4

Скрипт можешь обернуть в “”" вместо '.
Не уверен, но может помочь