我正在尝试使用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次,则模糊消失并允许单击按钮)手动。 如何在页面上单击几次或关闭弹出窗口以找到元素?
答案 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()
然后,您将可以像网页一样刮擦弹出窗口,并且可以单击“关闭”按钮或类似的东西! 希望我能帮到您:)