python - 获取表格行文本 python selenium
问题描述
这是html
<table id="dataLstSubCat" cellspacing="0" style="border-collapse:collapse;">
<tbody><tr>
<td style="font-weight:normal;font-style:normal;text-decoration:none;white-space:nowrap;">
<a onclick="ShowHideProduct();" id="dataLstSubCat_LnkBtnSubCat_0" href="javascript:__doPostBack('dataLstSubCat$ctl00$LnkBtnSubCat','')">Primers</a>
</td><td style="font-weight:normal;font-style:normal;text-decoration:none;white-space:nowrap;">
<a onclick="ShowHideProduct();" id="dataLstSubCat_LnkBtnSubCat_1" href="javascript:__doPostBack('dataLstSubCat$ctl01$LnkBtnSubCat','')">Intermediates</a>
</td><td style="font-weight:normal;font-style:normal;text-decoration:none;white-space:nowrap;">
<a onclick="ShowHideProduct();" id="dataLstSubCat_LnkBtnSubCat_2" href="javascript:__doPostBack('dataLstSubCat$ctl02$LnkBtnSubCat','')">Finishes</a>
</td>
</tr>
</tbody></table>
现在我想提取表格数据(td)文本,就像我想提取文本一样
[底漆、中间体、饰面]
这是我尝试过的
new_text=driver.find_element_by_xpath(("//table[@id='dataLstSubCat']/tbody/tr"))
new_text.text
它在字符串中给出 o/p 而不是在列表中
Primers Intermediates Finishes
有什么办法可以做到。
解决方案
要提取表数据[Primers,Intermediates,Finishes],您可以使用以下任一Locator Strategies:
使用
CSS_SELECTOR
:print([my_text_elem.get_attribute("innerHTML") for my_text_elem in WebDriverWait(driver, 5).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "table#dataLstSubCat>tbody>tr td>a")))])
使用
XPATH
:print([my_text_elem.get_attribute("innerHTML") for my_text_elem in WebDriverWait(driver, 5).until(EC.visibility_of_all_elements_located((By.XPATH, "//table[@id='dataLstSubCat']/tbody/tr//td/a")))])
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
推荐阅读
- java - 如何在 Java 和 Python 之间创建 2 路通信
- c# - Microsoft ReportViewer - 调用 pdf 渲染时缺少 pdb 错误
- laravel - Socket.io laravel,ERR_CONNECTION_REFUSED
- c# - Bot Framework 自适应对话框。如何更改生成器(.lg 文件)?
- python - 删除pickle中的数据
- javascript - 如何制作仅用于水平滚动的粘性导航栏?
- python - 使用 Django 重置密码
- android-studio - gradle 是否在 Windows 上与 Android Studio 一起安装?
- excel - Excel VBA:如何根据数据库名称对行进行分组并根据特定的组名添加值?
- kivy - 使用带有实例化 Screen 类和 MDFloatingActionButtonSpeedDial 的 kivy ScreenManager 时出现问题