【问题标题】:Python-Selenium: How to get the element href value?Python-Selenium:如何获取元素 href 值?
【发布时间】:2022-01-05 22:06:51
【问题描述】:

我正在使用 python selenium 并尝试获取下面列出的电子邮件:

 <a class="contactAction-214" aria-label="Email example@example.com" tabindex="0" draggable="false" href="mailto:example@example.com"><i data-icon-name="Mail" aria-hidden="true" class="icon-224"></i><span class="text-219"><span>example@example.com</span></span></a>

我正在尝试获取电子邮件:上面的 example@example.com; 我已经坚持了大约一个小时,我认为最简单的方法是获取 href 或 aria-label,任何帮助!

【问题讨论】:

标签: python selenium xpath css-selectors webdriverwait


【解决方案1】:

要打印文本example@example.com,您可以使用以下任一Locator Strategies

  • 使用css_selectorget_attribute("innerHTML")

    print(driver.find_element(By.CSS_SELECTOR, "a[class^='contactAction'][aria-label^='Email'][href] span[class] > span").get_attribute("innerHTML"))
    
  • 使用xpathtext属性:

    print(driver.find_element(By.XPATH, "//a[starts-with(@class, 'contactAction') and starts-with(@aria-label, 'Email')][@href]//span[@class]/span").text)
    

理想情况下,您需要为visibility_of_element_located() 诱导WebDriverWait,您可以使用以下任一Locator Strategies

  • 使用CSS_SELECTORtext 属性:

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "a[class^='contactAction'][aria-label^='Email'][href] span[class] > span"))).text)
    
  • 使用XPATHget_attribute("innerHTML")

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//a[starts-with(@class, 'contactAction') and starts-with(@aria-label, 'Email')][@href]//span[@class]/span"))).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
    

您可以在How to retrieve the text of a WebElement using Selenium - Python找到相关讨论


参考文献

链接到有用的文档:

【讨论】:

    【解决方案2】:

    你可以这样试试。您首先找到要查找的 HTML 特定部分的 Xpath,然后请求 aria-label 属性

    email = driver.find_element_by_xpath("//a[@class='contactAction-214']").get_attribute("aria-label")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-30
      • 2020-03-19
      • 1970-01-01
      • 2023-02-07
      • 2018-06-16
      • 1970-01-01
      相关资源
      最近更新 更多