Phython Selenium - Проверка элемента с последующим действием - Instagram Automation - PullRequest
0 голосов
/ 11 апреля 2020

Я новичок в Python и изучал автоматизацию Instagram, написав приложение для добавления в пост в Instagram с использованием селена. Мне удалось войти в систему и получить доступ к URL-адресу публикации, которая мне нравится, однако, чтобы избежать "неприязни" «щелкнув по нему, если он ранее понравился, я уже хотел сначала выполнить проверку.

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

Само имя класса, которое называется 'wpO6b' после попытки нескольких сообщений (однако я не совсем уверен, что это правильный подход). Более того, при печати атрибутов этого класса, кажется, есть несколько атрибутов, которые, по-видимому, полезны здесь, например svg aria-label = и fill = (значения, отличающиеся, когда сообщение понравился или не понравился).

Я могу напечатать атрибут, однако дальнейшие действия являются проблемой, и я был бы признателен за некоторую помощь в использовании внутреннего вывода HTML для дальнейшей записи if l oop или if - еще l oop et c. чтобы проверить, совпадают ли параметры с «непривязанной» публикацией, а затем запустите value.click (), чтобы щелкнуть и, как и публикация, перейти к следующему URL-адресу в списке.

Код

drv.get(ur1)
elm = drv.find_element_by_class_name("wpO6b")
print(elm.get_attribute("innerHTML"))

Выход:

<svg aria-label="Unlike" class="_8-yf5 " fill="#ed4956" height="24" viewBox="0 0 48 48" width="24"><path clip-rule="evenodd" d="M35.3 35.6c-9.2 8.2-9.8 8.9-11.3 8.9s-2.1-.7-11.3-8.9C6.5 30.1.5 25.6.5 17.8.5 9.9 6.4 3.5 13.7 3.5 20.8 3.5 24 8.8 24 8.8s3.2-5.3 10.3-5.3c7.3 0 13.2 6.4 13.2 14.3 0 7.8-6.1 12.3-12.2 17.8z" fill-rule="evenodd"></path></svg>

1 Ответ

0 голосов
/ 12 апреля 2020

Использовал это, и это сработало, он проверяет, имеет ли кнопка цвет заливки для непохожих, и затем любит публикацию или она переходит к следующей ссылке:

inst_url = open('links.txt', 'r')

def link_click():
    sleep(randint(1, 2))
    for urls in inst_url:
        drv.get(urls)
        elm = drv.find_element_by_class_name('wpO6b')
        elem = (elm.get_property("innerHTML"))
        if "#262626" in elem:
            value = drv.find_element_by_xpath(
                '//*[@id="react-root"]/section/main/div/div[1]/article/div[2]/section[1]/span[1]/button')
            value.click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...