【发布时间】:2020-09-03 15:09:38
【问题描述】:
我正在尝试编写一个 Python 程序,该程序将在他发短信后立即从 facebook 消息页面(类似于 facebook messenger)获取某人的最后一条消息并在 Python IDE 中打印。
我正在使用 Selenium 打开页面并进入我期待消息的人的文本框。我不知道如何从那里继续,因为每次新文本来自新文本的 xpath、选择器等文本更改,即使我使用 expected_conditions,我应该怎么做?元素本身正在发生变化。如果我可以获取元素 id 或 xpath 或其他方式,我可以轻松使用 gettext() 方法获取文本。
下面是我的最小代码,用于到达我期待消息的人的文本框-
from selenium import webdriver
usr = "x******@gmail.com"
pwd = "y*****"
opt = webdriver.ChromeOptions()
opt.add_experimental_option("prefs",{"profile.default_content_setting_values.notifications":2}) # Block_notifications
driver = webdriver.Chrome('C:\Chromedriver\chromedriver.exe',chrome_options=opt)
driver.get('https://www.facebook.com/')
username_box = driver.find_element_by_id('email')
username_box.send_keys(usr)
password_box = driver.find_element_by_id('pass')
password_box.send_keys(pwd)
login_box = driver.find_element_by_id('u_0_b')
login_box.click()
driver.get("https://www.facebook.com/messages/t/userid")
textbox = driver.find_element_by_xpath(r"""//*[@id="js_i"]/div/div/div""")
如何从这里着手,在他这样做的时候得到消息?
【问题讨论】:
-
您能否分享您尝试访问的元素的 HTML DOm。我无法登录 Facebook 来查看自己。
-
首先 xpathing /div/div 并抓取最后一个 data-tooltip-position="left"。它对应于对方发送的最后一条消息。
-
@arundeepchohan 你能告诉我 data-tooltip-position="left" 的代码格式吗?
-
这很长,但如果你 //*[@id="js_i"]/div/div/div/div/div 。这是一个div标签,你可以在搜索时查看它的属性值。
标签: python html facebook selenium selenium-chromedriver