我正在嘗試查找標題為“鍵入訊息”的“div”元素。
以下代碼有效:
div_nodes = driver.find_elements_by_tag_name('div')
for element in div_nodes:
if element.get_attribute('title') == 'Type a message':
element.send_keys(Keys.ENTER)
但這不起作用:
element = driver.find_element_by_xpath('//div[@title="Type a message"]')
element.send_keys(Keys.ENTER)
我得到錯誤selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//div[@title="Type a message"]"}
編輯:這是代碼和網頁的相關部分。我正在向 web.whatsapp.com 傳遞一個電話號碼和一條訊息。下面是作業代碼。如果我用 find_element_by_xpath 替換最后 4 行,它不起作用:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import urllib.parse
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(executable_path=r'<mypath>/chromedriver.exe', options=options)
qry = {}
qry['phone'] = str(contact_number)
qry['text'] = message
url = "https://web.whatsapp.com/send/?{}".format(urllib.parse.urlencode(qry))
driver.get(url)
div_nodes = driver.find_elements_by_tag_name('div')
for element in div_nodes:
if element.get_attribute('title') == 'Type a message':
element.send_keys(Keys.ENTER)
uj5u.com熱心網友回復:
我試過這個 xpath 并且它有效
element = driver.find_element_by_xpath('//div[contains(@title, "message")]')
或者,您可以嘗試使用此按鈕單擊發送按鈕
driver.find_element_by_css_selector('span[data-testid="send"]').click()
這也適用于我。讓我知道他們是否也為您作業。
ps 我建議通過使用新功能來更新代碼,因為您正在使用的功能已被棄用。
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
driver = webdriver.Chrome(service=Service(r'<mypath>/chromedriver.exe'), options=options)
div_nodes = driver.find_elements(By.TAG_NAME, 'div')
element = driver.find_element(By.XPATH, '//div[@title="Type a message"]')
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/479395.html
