繁体   English   中英

如何使用 selenium python 获取嵌套 td 元素的值

[英]How to get the value of a nested td elements using selenium python

我正在尝试获取表中每个<tr>中第三个<td>标记的值。

我试过了:

math_grade = wait.until(EC.presence_of_element_located((By.TAG_NAME,'./body/div/div[1]/div[5]/div[1]/table/tbody'))).text
print(math_grade)

但它没有用,知道这个表只在搜索后显示,所以我在这行代码运行之前添加了一个sleep(5)

在此处输入图像描述

尝试使用此代码从每个表格行的每个第三个单元格中获取值

math_grades = [td.text for td in wait.until(EC.presence_of_all_elements_located((By.XPATH,'//tr/td[3]')))]

PS 请注意,要使用 XPath 作为定位器,您需要传递By.XPATH选择器类型而不是By.TAG_NAME

PPS 将 HTML 代码示例添加为文本,而不是图像文件

要从每个<tr>的第三个<td>打印文本而不是 present_of_element_located presence_of_element_located()您需要为visibility_of_all_elements_located()诱导WebDriverWait并使用列表理解,您可以使用以下任一定位器策略

  • 使用 xpath 和text属性:

     print([my_elem.text for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//table/tbody//tr//td[@class='grade']//following-sibling::td[1]")))])
  • 使用 xpath 和get_attribute()属性:

     print([my_elem.get_attribute("innerHTML") for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//table/tbody//tr//td[@class='grade']//following-sibling::td[1]")))])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM