我正在嘗試從Page_inspect獲取文本類價格值
使用了 driver.find_element_by_xpath 和 WebDriverWait。
rateText=WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located((By.XPATH, '//div[starts-with(@class,"price")]//div[contains(@class,"price-value")]')))
for ratevalue in rateText:
print (ratevalue.text)
結果未找到:
回溯(最后一次呼叫):檔案“D:\project\totempop\webscraping\asrPOP.py”,第 22 行,在 rateText=WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located((By.XPATH, '/ /div[starts-with(@class,"price")]//div[contains(@class,"price-value")]'))) 檔案 "C:\Python310\lib\site-packages\selenium\ webdriver\support\wait.py",第 89 行,直到引發 TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: 訊息:
提前致謝
uj5u.com熱心網友回復:
很可能,您遇到了 XPath 的問題。你應該試試這個:'.//div[contains(@class,"price-value")]/text()'
uj5u.com熱心網友回復:
你可以使用這個:
WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located((By.CLASS_NAME, "price-value")))
elements = driver.find_elements(By.CLASS_NAME, "price-value")
for element in elements:
print(element.text)
uj5u.com熱心網友回復:
似乎您已經足夠接近,但您需要進行一些小的調整,如下所示:
具有
<div >單個類名值,因此您可以洗掉該contains()部分。是在
<strong >父級內<div>,所以你必須調整定位器策略。理想情況下,要獲取文本,您需要為visibility_of_element_located()引入WebDriverWait,您可以使用以下任一定位器策略:
使用CSS_SELECTOR和text屬性:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.price div.price-line > strong.price-value"))).text)使用XPATH和
get_attribute("innerHTML"):print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='price']//div[@class='price-line']/strong[@class='price-value']"))).get_attribute("innerHTML"))
注意:您必須添加以下匯入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/460955.html
