【问题标题】:How to close google chrome popups with selenium on python?如何在 python 上使用 selenium 关闭谷歌浏览器弹出窗口?
【发布时间】:2020-12-21 01:32:50
【问题描述】:

我正在尝试使用 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 次,模糊消失并允许单击按钮手动。 如何在页面上单击几次或关闭弹出窗口以找到元素?

【问题讨论】:

    标签: python selenium google-chrome automation


    【解决方案1】:
    from selenium.webdriver.chrome.options import Options
    
    option = Options()
    option.add_argument("--disable-infobars")
    driver = webdriver.Chrome("yourpathtochromedriver",chrome_options=option)
    

    这将禁用所有信息栏。

    【讨论】:

    • 确实有效。它说:selenium.common.exceptions.WebDriverException:消息:“Google Chrome.app”可执行文件可能有错误的权限。请参阅sites.google.com/a/chromium.org/chromedriver/home。我的权限是:为所有人读写
    • 您的浏览器是否使用兼容的 chromedriver 版本?
    • 是的,因为所有命令都有效,find_element_by_xpath 有效(驱动程序的功能有效)
    【解决方案2】:

    网站上的弹出窗口是网页的另一个框架。所以你必须切换到另一个框架才能关闭它。通过使用:

    driver.switch_to_active_element()
    

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

    然后,您将能够像网页一样抓取弹出窗口,您将能够单击“关闭”按钮或类似的东西! 希望对你有所帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多