如何在python selenium中查找元素的标题

2024-04-26 12:35:28 发布

您现在位置:Python中文网/ 问答频道 /正文

<div> <div class="alk_dvImage"><a href="/products/"><img class="alk_prImg" src="https://a random photo" alt="a random product"></a> </div> <div class="product-score"></div> <a href="/products/" class="alk_prName alk_pr" title="Products Title">Strong Graphic Card </a> </div>

假设我们有一个上面给出的html。我想提取嵌套在div中的'a'元素的标题。我还想在尝试这段代码时获取同一元素的类

browser.find_element_by_css_selector('a.alk_prName alk_pr')

这没有任何反应。顺便说一句,我不能做任何事情来得到一个元素


Tags: httpsdivsrc元素imgrandomprproduct
2条回答

会发生什么

如果没有在选择器中按点链接类,请尝试以下操作:

browser.find_element_by_css_selector('a.alk_prName.alk_pr').get_attribute("title")

示例:

from selenium import webdriver
browser = webdriver.Chrome('C:\Program Files\ChromeDriver\chromedriver.exe')

html_content = """
  <a href="/products/" class="alk_prName alk_pr" title="Products Title">Strong Graphic Card</a>
"""

browser.get("data:text/html;charset=utf-8,{html_content}".format(html_content=html_content))

browser.find_element_by_css_selector('a.alk_prName.alk_pr').get_attribute("title")

要打印标题属性的值,即产品标题,可以使用以下任一Locator Strategies

  • 使用css_selector

    print(driver.find_element(By.CSS_SELECTOR, "a.alk_prName.alk_pr[href='/products/']").get_attribute("title"))
    
  • 使用xpath

    print(driver.find_element(By.XPATH, "//a[@class='alk_prName alk_pr' and @href='/products/'][contains(., 'Strong Graphic Card')]").get_attribute("title"))
    

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

  • 使用CSS_SELECTOR

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "a.alk_prName.alk_pr[href='/products/']"))).get_attribute("value"))
    
  • 使用XPATH

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//a[@class='alk_prName alk_pr' and @href='/products/'][contains(., 'Strong Graphic Card')]"))).get_attribute("value"))
    
  • 注意:您必须添加以下导入:

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

相关问题 更多 >