python - python selenium 获取表格行文本

标签 python selenium xpath css-selectors webdriverwait

这是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,而不是列表中的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
    

关于python - python selenium 获取表格行文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56323436/

相关文章:

Python使用sqlcmd执行sql查询

python - 统一码编码错误 : 'ascii' codec can't encode character u'\xe9'

python - 类型错误 : unicode strings are not supported, 请编码为字节: '\x08'

python - Selenium 卡在 pyvirtualdisplay 上

java - 使用 Xpath 或 CSS 选择器单击带有 Selenium 的按钮

selenium - 如何使用 Python 和 Selenium 检索视频在 Youtube 上发布的日期

java - Webdriver - 无法找到 Xpath/CSS 并出现 NoSuchElementException

python - Uwsgi 失败并返回 : Py_Initialize: Unable to get the locale encoding

java - 如何获取计算机的 IP(Java/Selenium)?

java - 通过调用 Ant 从 Jenkins 运行 Selenium 测试