Нажмите «Не сейчас» на уведомлениях в Instagram, спросите с помощью Selenium и Python

1

Я написал скрипт, который успешно делает вход в Instagram. Когда я должен зайти в свой аккаунт, дома на веб-сайте появляется всплывающее окно, которое спрашивает вас, хотите ли вы получать уведомления. На данный момент я перепробовал много решений, но ничего не получил. Я просто хочу, чтобы при отображении всплывающего окна скрипт нажимал "Не сейчас".

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


ids = []

driver = webdriver.Chrome(executable_path = '/usr/local/bin/chromedriver')
driver.get("https://www.instagram.com/accounts/login/?source=auth_switcher")


usm = driver.find_element_by_name('username').send_keys("**")
pwd = driver.find_element_by_name('password').send_keys("**")
btnLog = driver.find_element_by_tag_name('form').submit()

acpt = driver.find_element_by_xpath("//*[contains(@class, 'aOOlW   HoLwm ')]")

На изображении выделена строка кнопки, которую я хочу нажать:

Изображение 174551

  • 0
    Не могли бы вы предоставить нам логин ошибки?
Теги:
selenium
selenium-webdriver
instagram
webdriverwait

2 ответа

1
Лучший ответ

Попробуйте следующий код для этого:

from selenium.webdriver.support import ui
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By


ui.WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".aOOlW.HoLwm"))).click()

PS: я использовал 10-секундное ожидание, чтобы элемент стал кликабельным, прежде чем щелкнуть по нему.

Надеюсь, это поможет вам!

  • 0
    Я попробовал ваш код, и он успешно работает! : D Но я новичок в селене, и я не очень хорошо понял ваш код ... строка кода говорит, что драйвер должен посещать 10 (миллисекунд?) До элемента класса '.aOOlW.HoLwm готов быть кликабельным?
  • 0
    Какова точно функция ЕС (ожидаемые_условия)? Спасибо за ваше время
Показать ещё 2 комментария
0

Чтобы click() на элементе с текстом, так как Not now on Instagram всплывающее уведомление вы можете использовать следующее решение:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

options = Options()
options.add_argument("start-maximized")
options.add_argument("disable-infobars")
options.add_argument("--disable-extensions")
driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
driver.get("https://www.instagram.com/accounts/login/?source=auth_switcher")
driver.find_element_by_name('username').send_keys("Giacomo")
driver.find_element_by_name('password').send_keys("Maraglino")
driver.find_element_by_tag_name('form').submit()
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[contains(.,'Non ora')]"))).click()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню