点击Instagram通知上的“现在不行”,询问使用Selenium和Python

时间:2018-11-30 18:38:29

标签: python selenium selenium-webdriver instagram webdriverwait

我编写了一个脚本,可以成功在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 ')]")

在图像中,我要单击的突出显示的按钮行:

Click here for image.

3 个答案:

答案 0 :(得分:2)

为此尝试以下代码:

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秒钟的时间等待该元素在点击之前可点击。

希望对您有帮助!

答案 1 :(得分:0)

要在 Instagram 弹出通知中以{strong>不立即为文本的元素上的click(),您可以使用以下解决方案:

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()

答案 2 :(得分:0)

只需将点击添加到acpt,就像这样:

{with_path: false)