亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Selenium Python:無法獲取 Google Hangouts 上聊天元素的路徑

Selenium Python:無法獲取 Google Hangouts 上聊天元素的路徑

白衣染霜花 2023-02-15 15:05:34
我最近在使用 python 中的 selenium 模塊時遇到了很多麻煩。我正在嘗試制作一個腳本,可以根據其中一位朋友的要求自動向我的朋友發送消息。我可以用它登錄 Google Hangouts,但是我在訪問聊天時遇到了相當大的困難。如果我想點擊一個對話來打開聊天窗口,我想我可以用 selenium 的 find_element_by_id() 函數來選擇 id。但是,這不起作用,因為環聊使用在某些事件后會更改的動態 ID。我真的不知道該怎么辦。我嘗試使用 xpath,但這也不起作用。我真的不知道此時該做什么,因為我正在嘗試的任何事情似乎都不起作用。如果您想自己重現此內容,則必須獲取 chromedriver 并輸入路徑。您還必須將自己的電子郵件和密碼輸入到正確的 send_keys() 函數中。from selenium import webdriverimport time# get browser set upoptions = webdriver.ChromeOptions()options.add_argument("start-maximized")options.add_argument("disable-infobars")options.add_argument("--disable-extensions")browser = webdriver.Chrome(options=options,                           executable_path=r"chromedriver path")browser.get('https://stackoverflow.com/users/login')# locate and click sign in button on stackoverflow (can't sign in on regular google)google_button = browser.find_element_by_class_name('s-btn__google')google_button.click()email_elem = browser.find_element_by_id('identifierId')email_elem.send_keys('email')next_button = browser.find_element_by_id('identifierNext')next_button.click()# enters password while True:    try:        pwd_elem = browser.find_element_by_css_selector('input[type = "password"]')        pwd_elem.send_keys('password')        break    except:        time.sleep(1)next_button = browser.find_element_by_id("passwordNext")next_button.click()while True:    try:    # gets to hangouts        browser.execute_script('''window.open("https://hangouts.google.com/", "_blank");''')        browser.switch_to.window(browser.window_handles[-1])        break    except:        time.sleep(1)refreshed = Falsewhile True:    try:        # CAN'T FIND PATH TO CHAT        chat = browser.find_element_by_xpath('/html/body/div/div/div/div/div[2]/div/div/div[2]/div/div/div/div/div[1]/div[1]/div/div[1]')        chat.click()        break    except:
查看完整描述

1 回答

?
溫溫醬

TA貢獻1752條經驗 獲得超4個贊

您在框架內的元素,您需要先切換:


browser.switch_to.frame(browser.find_element_by_class_name('Xyqxtc'))


chat = browser.find_element_by_xpath('/html/body/div/div/div/div/div[2]/div/div/div[2]/div/div/div/div/div[1]/div[1]/div/div[1]')

chat.click()

但是不推薦使用絕對路徑,容易被更改。


以下定位器看起來更好:


chat = browser.find_element_by_css_selector('div.MM')


查看完整回答
反對 回復 2023-02-15
  • 1 回答
  • 0 關注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號