[英]Using Selenium Python to get “data-label” attribute
我有一张表,它用多个名称重新组合了多个data-label
,我尝试使用driver.get_elements_by_css_selector
方法但它不起作用,这是我想从中获取值的 HTML:
<tbody>
<tr>
<td data-label="Player">Pierre-Emerick Aubameyang</td>
<td data-label="Gross Weekly Wages">£250,000</td>
</tr>
<tr>
<td data-label="Player">Willian</td>
<td data-label="Gross Weekly Wages">£195,000</td>
</tr>
.
.
.
</tbody>
因为我有很多tr
每个人都有玩家信息,所以我做了这段代码,但它不起作用。
elements = driver.find_elements(By.TAG_NAME, 'tr')
for element in elements:
player_info = element.find_elements(By.TAG_NAME, 'td')
player_name = player_info[0].get_attribute('data-label')
player_week_salary = player_info[1].get_attribute('data-label')
按selenium中的属性获取数据,使用方法:
element.get_attribute('you_attribute')
对于该示例,它应该如下所示:
elements = driver.find_elements(By.TAG_NAME, 'td')
attr = elements[0].get_attribute('data-label')
print(attr)
或通过链接使用已回答的问题: 如何从 Selenium 获取元素的属性?
您需要正确识别您的定位器。 在你的情况下 XPATH 定位器是: //tr/td[1]
driver.find_element_by_xpath("//tr/td[1]")
和
driver.find_element_by_xpath("//tr/td[2]")
对于第二个元素,依此类推。
您还可以使用 CSS 选择器。 阅读nth-of-type(1)
以识别相似的定位器。 获取属性使用get_attribute
方法。 尝试:
locator = driver.find_element_by_xpath("//tr/td[1]")
your_attribute = locator.get_attribute("data-label")
或者使用td:nth-of-type(1)
, td: nth-of-type(2)
等等作为 CSS 定位器。 它看起来像这样:
driver.find_element_by_css_selector("td:nth-of-type(1)").get_attribute("data-label")
要通过 xpath 获取元素,您必须这样做。 到子元素。
elements = driver.find_elements(By.TAG_NAME, 'tr')
for element in elements:
player_name = element.find_element_by_xpath("./td[1]").get_attribute('data-label')
player_week_salary = element.find_element_by_xpath("./td[2]").get_attribute('data-label')
print(player_name,player_week_salary)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.