如何在 python selenium 中找到元素的标题
How to find the title of a element in python selenium
<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' 元素的标题。而且我还想要这个相同元素的 class 当我尝试此代码时如何
browser.find_element_by_css_selector('a.alk_prName alk_pr')
这没有任何反应。顺便说一句,我无法做任何事情来获得元素。
会发生什么?
您没有在选择器中通过点链接 类,请尝试以下操作:
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")
要打印 title 属性的值,即 Products Title,您可以使用以下任一方法 :
使用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()
引入 ,您可以使用以下任一方法 :
使用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
<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' 元素的标题。而且我还想要这个相同元素的 class 当我尝试此代码时如何
browser.find_element_by_css_selector('a.alk_prName alk_pr')
这没有任何反应。顺便说一句,我无法做任何事情来获得元素。
会发生什么?
您没有在选择器中通过点链接 类,请尝试以下操作:
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")
要打印 title 属性的值,即 Products Title,您可以使用以下任一方法
使用
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()
引入
使用
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