如何在python上使用硒关闭Google Chrome弹出式窗口?

时间:2020-09-01 22:07:30

标签: python selenium google-chrome automation

我正在尝试使用python在facebook messanger上自动发送消息。直到现在我都拥有以下代码:

from selenium import webdriver

机器人类别:

def __init__(self):
    self.driver = webdriver.Chrome()

def loginFacebook(self):
   # btn = self.driver.find_element_by_xpath("/html/body/div[1]/div[2]/div[1]/div/div/div/div[2]/div/div[1]/form/div[1]/div[1]/input")
    #btn.click()
   email_in = self.driver.find_element_by_xpath('//*[@id="email"]')
   email_in.send_keys("xxxxx@mail.com")

   pw_in = self.driver.find_element_by_xpath('//*[@id="pass"]')
   pw_in.send_keys("xxxxxx")

   login_btn = self.driver.find_element_by_xpath('//*[@id="u_0_d"]')
   login_btn.click()

def sendMessageFacebook(self):
    sendMessageBtn = self.driver.find_element_by_xpath('//*[@id="mount_0_0"]/div/div[1]/div[1]/div[5]/div[1]/div[2]/span/div')
    sendMessageBtn.click()

问题是登录后打开的Facebook页面,显示“允许通知”弹出窗口,我必须单击该按钮以允许或阻止。而且此弹出窗口不允许驱动程序找到“发送消息”按钮所在的元素...但是,如果您在页面上单击几次(例如在页面上单击4或5次,则模糊消失并允许单击按钮)手动。 如何在页面上单击几次或关闭弹出窗口以找到元素?

2 个答案:

答案 0 :(得分:0)

from selenium.webdriver.chrome.options import Options

option = Options()
option.add_argument("--disable-infobars")
driver = webdriver.Chrome("yourpathtochromedriver",chrome_options=option)

这将禁用所有信息栏。

答案 1 :(得分:0)

网站上的弹出窗口是网页的另一框架。因此,您必须切换到其他框架才能关闭它。通过使用:

driver.switch_to_active_element()

您将能够转到框架弹出窗口。如果它不起作用,则可以尝试将现有的其他功能更改为其他框架。 driver.switch_to_bla_bla_bla()

然后,您将可以像网页一样刮擦弹出窗口,并且可以单击“关闭”按钮或类似的东西! 希望我能帮到您:)