使用 python selenium 我試圖從下面的 li 類中提取資訊是我嘗試過但出現錯誤的代碼:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element:
{"method":"xpath","selector":"//ul[@class='oas_columnsWrapper']//following::li[2]"}
我想列印:- 218543-Not Applicable OA
以下是我嘗試過但沒有運氣的代碼。
請幫忙!
print(browser.find_element(By.XPATH,"//ul[@class='oas_columnsWrapper']//following::li[2]").Attribute("innerHTML"))
我的html代碼:
<ul class="omniAds__oas_columnsWrapper">
<li class="omniAds__oas_columns">1.</li>
<li class="omniAds__oas_columns">218543-Not Applicable OA</li>
<li class="omniAds__oas_columns"></li>
<li class="omniAds__oas_columns">23-11-2021</li>
<li class="omniAds__oas_columns">19,452</li>
<li class="omniAds__oas_columns">546</li>
<li class="omniAds__oas_columns">3%</li>
<li class="omniAds__oas_columns undefined"><b>RUNNING</b></li>
<div class="omniAds__oas_columns"><a href="/my99acres/all_responses/OA"><b>16 Responses</b></a></div>
<li class="omniAds__oas_columns omniAds__oas_viewReportBtn" id="oas_viewReportBtn0">View Report</li>
</ul>
uj5u.com熱心網友回復:
AttributeSelenium-Python 中沒有呼叫方法。這是get_attribute
另外,你應該推遲一些
time.sleep(5)
second_li = browser.find_element(By.XPATH,"//ul[@class='omniAds__oas_columnsWrapper']//following::li[2]").get_attribute('innerText')
print(second_li)
建議(使用顯式等待)
try:
second_li = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//ul[@class='omniAds__oas_columnsWrapper']//following::li[2]"))).get_attribute('innerText')
print(second_li)
except:
print("Could not get the text")
pass
你將不得不匯入
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
uj5u.com熱心網友回復:
您的 XPath 選擇器不正確。它需要omniAds__oas_columnsWrapper,而不僅僅是oas_columnsWrapper。
此外,您不需要選擇 WebElement 的屬性來獲取其文本。Selenium 已經為 WebElement 提供了一個內置屬性,.text可以為您執行此操作。但是,如果您仍然想使用屬性,請使用.get_attribute()而不是attribute()。
另外,作為旁注,我認為您的 XPath 可以簡化一些。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/369486.html
