Селен проверить кнопку [svg] - PullRequest
1 голос
/ 04 апреля 2020

Я работаю над Selenium с Python. Я пишу код, который о Instagram, как бот. Я достиг этого. Я могу войти -> войти в профиль, а затем фотографии в порядке. Но я хочу проверить, понравилась фотография или не понравилась. Если фотография уже нравится, то go к следующей фотографии.

Я не могу получить атрибут кнопки «Мне нравится».

Это пример непривязанной фотографии:

<button class="wpO6b " type="button">
<svg aria-label="Like" class="_8-yf5 " fill="#262626" height="24" viewBox="0 0 48 48" width="24">
    <path clip-rule="evenodd" d="M34.3 3.5C27.2 3.5 24 8.8 24 8.8s-3.2-5.3-10.3-5.3C6.4 3.5.5 9.9.5 17.8s6.1 12.4 12.2 17.8c9.2 8.2 9.8 8.9 11.3 8.9s2.1-.7 
    11.3-8.9c6.2-5.5 12.2-10 12.2-17.8 0-7.9-5.9-14.3-13.2-14.3zm-1 29.8c-5.4 4.8-8.3 7.5-9.3 8.1-1-.7-4.6-3.9-9.3-8.1-5.5-4.9-11.2-9-11.2-15.6 0-6.2 4.6-
    11.3 10.2-11.3 4.1 0 6.3 2 7.9 4.2 3.6 5.1 1.2 5.1 4.8 0 1.6-2.2 3.8-4.2 7.9-4.2 5.6 0 10.2 5.1 10.2 11.3 0 6.7-5.7 10.8-11.2 15.6z" fill-rule="evenodd">
    </path>
</svg> 

Это пример понравившейся фотографии

<button class="wpO6b " type="button">
<svg aria-label="Unlike" class="_8-yf5 " fill="#262626" height="24" viewBox="0 0 48 48" width="24">
    <path clip-rule="evenodd" d="M34.3 3.5C27.2 3.5 24 8.8 24 8.8s-3.2-5.3-10.3-5.3C6.4 3.5.5 9.9.5 17.8s6.1 12.4 12.2 17.8c9.2 8.2 9.8 8.9 11.3 8.9s2.1-.7 
    11.3-8.9c6.2-5.5 12.2-10 12.2-17.8 0-7.9-5.9-14.3-13.2-14.3zm-1 29.8c-5.4 4.8-8.3 7.5-9.3 8.1-1-.7-4.6-3.9-9.3-8.1-5.5-4.9-11.2-9-11.2-15.6 0-6.2 4.6-
    11.3 10.2-11.3 4.1 0 6.3 2 7.9 4.2 3.6 5.1 1.2 5.1 4.8 0 1.6-2.2 3.8-4.2 7.9-4.2 5.6 0 10.2 5.1 10.2 11.3 0 6.7-5.7 10.8-11.2 15.6z" fill-rule="evenodd">
    </path>
</svg> 

Как я могу (получить aria-label = "Unlike") или (aria-label = "Like" атрибут) , Или есть другое решение? Спасибо

1 Ответ

4 голосов
/ 04 апреля 2020

Вот xpath, который вы можете использовать, чтобы найти кнопку с Svg.

 //button[normalize-space(@class)='wpO6b']/*[name()='svg']

enter image description here

ваш код должен быть примерно таким, как показано ниже .

ele = driver.find_element_by_xpath(" //button[normalize-space(@class)='wpO6b']/*[name()='svg']")
print(ele.get_attribute('aria-label')
...