Как я могу перейти по ссылке через изображение, не имея ссылки в div?

#selenium #parsing #selenium-webdriver

Вопрос:

Проблема в том, что я не могу понять, как перейти по ссылке. Ссылка переходит на нужную мне страницу, когда я нажимаю на изображение, и нужная страница открывается в новой вкладке. Это трудно описать, это легче понять из прилагаемого кода

 <div class="css-1owz1l2">
    <span class=" lazy-load-image-background blur lazy-load-image-loaded" style="position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; border-radius: 4px; cursor: pointer; object-fit: cover; display: flex;">
         <img style="height: 100%; width: 100%; object-fit: cover; border-radius: 4px; background: rgba(0, 0, 0, 0) none repeat scroll 0% 0%;" src="https://public.nftstatic.com/static/nft/zipped/9082041d35194edd87f9078dc9440f7b_zipped.jpeg" sx="[object Object]">
    </span>
</div>
 

Ответ №1:

Вы можете извлечь ссылку из src атрибута img элемента следующим образом.
В случае, если класс «css-1owz1l2» уникален, вы можете сделать это:

 img = driver.find_element_by_xpath("//div[@class='css-1owz1l2']//img")
link = img.get_attribute("src")
 

Теперь вы можете использовать эту ссылку следующим образом:

 driver.get(link)
 

Или любым другим способом

Комментарии:

1. Здравствуйте, большое вам спасибо, теперь я могу перейти на нужную мне страницу. Если вы не возражаете, не могли бы вы рассказать мне, как решить проблему с этой строки? драйвер.получить(ссылка) объект «FirefoxWebElement» не имеет атрибута «организация»

2. Извините, моя опечатка.. Смотрите обновленный ответ

Ответ №2:

Вы можете попробовать поймать элемент изображения и щелкнуть по нему напрямую:

 # catching the image element 
image = driver.find_element_by_xpath("//div[@class='css-1owz1l2']//img")
image.click()