簡體   English   中英

Python Selenium:如何打印鏈接?

[英]Python Selenium: How can I print the link?

如何打印 href 屬性的值?

<a href="aaaaa.pdf"></a>

如何使用 python selenium 打印鏈接aaaaa.pdf

HTML:

<div class="xxxx">
    <a href="aaaaa.pdf"></a>
</div>

你可以這樣做:

print(driver.find_element_by_css_selector(".xxxx a").get_attribute('href'))

嘗試以下:

   pName = driver.find_element_by_css_selector(".xxxx").text
    print(pName)

或者

   pName = driver.find_element_by_css_selector(".xxxx").get_attribute("href")
   print(pName)
div.xxxx a

首先,檢查這個CSS_SELECTOR是否表示所需的元素。

檢查步驟:

Press F12 in Chrome -> go 到element部分 -> 執行CTRL + F -> 然后粘貼css並查看你想要的element是否用1/1匹配節點突出顯示

如果是,則使用顯式等待:

wait = WebDriverWait(driver, 20)
print(wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.xxxx a"))).get_attribute('href'))

進口:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

href屬性的值即aaaaa.pdf<a>標簽內,它是<div>標簽的唯一后代。


解決方案

要打印href屬性的值,您可以使用以下任一定位器策略

  • 使用css_selector

     print(driver.find_element(By.CSS_SELECTOR, "div.xxxx > a").get_attribute("href"))
  • 使用xpath

     print(driver.find_element(By.XPATH, "//div[@class='xxxx']/a").get_attribute("href"))

要理想地提取值,您必須為visibility_of_element_located()引入WebDriverWait ,您可以使用以下任一定位器策略

  • 使用CSS_SELECTOR

     print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.xxxx > a"))).get_attribute("href"))
  • 使用XPATH

     print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='xxxx']/a"))).get_attribute("href"))
  • 注意:您必須添加以下導入:

     from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM