Instagram Bot: Нажмите кнопку в Firefox с Selenium Python - PullRequest
0 голосов
/ 10 ноября 2018

Я создаю Instagram Bot (из учебника по YT) и не могу выйти из всплывающего окна «Включение уведомлений», которое появляется после входа в систему.

Я хочу нажать «Включить»

Как мне нажать кнопку? Вот xpath и то, что я вижу после проверки.

Xpath:

/html/body/div[2]/div/div/div/div[3]/button[1]

Проверка:

<button class="aOOlW  bIiDR  " tabindex="0">Turn On</button>

Вот мой код. Может кто-нибудь сказать мне, что добавить и где? Я пытаюсь нажать кнопку в самом низу ...

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

def print_same_line(text):
    sys.stdout.write('\r')
    sys.stdout.flush()
    sys.stdout.write(text)
    sys.stdout.flush()


class InstagramBot:

    def __init__(self, username, password):
        self.username = username
        self.password = password
        self.driver = webdriver.Firefox()

    def closeBrowser(self):
        self.driver.close()

    def login(self):
        driver = self.driver
        driver.get("https://www.instagram.com/")
        time.sleep(2)
        login_button = driver.find_element_by_xpath("//a[@href='/accounts/login/?source=auth_switcher']")
        login_button.click()
        time.sleep(2)
        user_name_elem = driver.find_element_by_xpath("//input[@name='username']")
        user_name_elem.clear()
        user_name_elem.send_keys(self.username)
        passworword_elem = driver.find_element_by_xpath("//input[@name='password']")
        passworword_elem.clear()
        passworword_elem.send_keys(self.password)
        passworword_elem.send_keys(Keys.RETURN)
        time.sleep(2)
        notify_button = browser.find_element_by_xpath('//button[text()="Turn On"]')
        notify_button.click()
        time.sleep(2)

1 Ответ

0 голосов
/ 10 ноября 2018

решение!

Вместо использования этого ...

notify_button = browser.find_element_by_xpath('//button[text()="Turn On"]')
notify_button.click()
time.sleep(2)

Используйте это!

notify_element = driver.find_element_by_css_selector("COPY PASTE CSS SELECTOR HERE")
notify_element.send_keys(Keys.TAB)
time.sleep(1)
notify_element.send_keys(Keys.RETURN)
time.sleep(2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...