我想從子元素中獲取所有 href。父類是否search-content
有父 div card-col,在這些 div 中還有另外 1 個 div,然后是 href。我只想得到這個href鏈接

這是我的代碼-->
el=WebDriverWait(driver,10).until(EC.presence_of_element_located((By.CLASS_NAME, "search-content-cards")))
el_hrefs=el.find_elements_by_xpath(".//a[@href]")
for i in el_hrefs:
print(i)
輸出是很多元素
<selenium.webdriver.remote.webelement.WebElement (session="0a4b52d1575e427e34d6b790a284c501", element="f7c84bf8-c20c-4b70-8ba5-414e822bba21")>
<selenium.webdriver.remote.webelement.WebElement (session="0a4b52d1575e427e34d6b790a284c501", element="1e078e8b-104f-4299-94b1-8741cf30f047")>
<selenium.webdriver.remote.webelement.WebElement (session="0a4b52d1575e427e34d6b790a284c501", element="d8b4b5e0-6291-4fd2-ae04-faee245462d1")>
<selenium.webdriver.remote.webelement.WebElement (session="0a4b52d1575e427e34d6b790a284c501", element="ef06e8ac-321c-40db-9f6c-40dd3a3b07de")>
<selenium.webdriver.remote.webelement.WebElement (session="0a4b52d1575e427e34d6b790a284c501", element="e14cf667-1bf4-434c-b9a2-1c4f362398d2")>
<selenium.webdriver.remote.webelement.WebElement (session="0a4b52d1575e427e34d6b790a284c501", element="8e549221-eca4-41cf-943d-3cb0f6f75d50")>
<selenium.webdriver.remote.webelement.WebElement (session="0a4b52d1575e427e34d6b790a284c501", element="afd597fb-1bb0-48fb-8646-6c43cb17ab38")>
<selenium.webdriver.remote.webelement.WebElement (session="0a4b52d1575e427e34d6b790a284c501", element="8f3a655e-d3cd-4748-934a-2c9000481ed3")>
<selenium.webdriver.remote.webelement.WebElement (session="0a4b52d1575e427e34d6b790a284c501", element="a1706e30-fad0-4799-871f-c5a928c69009")>
<selenium.webdriver.remote.webelement.WebElement (session="0a4b52d1575e427e34d6b790a284c501", element="156847c9-5d7f-4963-82fa-baaf2b8f6e7f")>
<selenium.webdriver.remote.webelement.WebElement (session="0a4b52d1575e427e34d6b790a284c501", element="99c320b4-f6f1-4eb4-abec-4be4df790b71")>
誰能幫我?
uj5u.com熱心網友回復:
i在你的情況下是一個web element,并且要提取.text,你不應該只是列印i,它應該是print(i.text)。
此外,如果您想提取 的href關閉a tag,那么您應該使用.get_attribute('href')
其次,我認為你應該使用 CSS_SELECTOR
div.search-content-cards
代替 CLASS_NAME
還有一個標簽是 descendant。
所以你的有效代碼應該是這樣的:
el = WebDriverWait(driver,10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "div.search-content-cards")))
el_hrefs = el.find_elements_by_xpath(".//descendant::a[@href]")
for i in el_hrefs:
print(i.get_attribute('href'))
uj5u.com熱心網友回復:
要提取href屬性的值而不是presence_of_element_located()您需要為visibility_of_all_elements_located()引入WebDriverWait并且可以使用以下任一定位器策略:
使用CSS_SELECTOR:
print([my_elem.get_attribute("href") for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "div.search-content-cards a.d-block")))])使用XPATH:
print([my_elem.get_attribute("href") for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//div[contains(@class, 'search-content-cards')]//a[contains(@class, 'd-block')]")))])注意:您必須添加以下匯入:
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/410062.html
標籤:
上一篇:Xaml內部錯誤錯誤WMC9999:索引(從零開始)必須大于或等于零且小于引數串列的大小
下一篇:再次決議復雜的JSON
