python-2.7 - Selenium XPATH 我如何从表第 4 列中的文本在表第 2 列中获取文本

标签 python-2.7 selenium xpath selenium-webdriver

我有一个包含一些列和行的 HTML 表格。我正在尝试查找第 5 列的文本和第 3 列的文本。 我想从第 5 列找到的文本是 101 THE BatCave|GOTHAM CITY|和第 3 列的文本 14

首先,我首先使用以下 XAPTH 从第 3 列中找到文本 14:

//table[@id="reporting_view_report_dg_main_body"]//tr//td[3]/div/span[@title="14"]

但我也不知道如何从第 5 列中获取文本。 我试过:

//table[@id="reporting_view_report_dg_main_body"]//tr//td[3]/div/span[@title="14"] and td[5]//span[contains(text(), "101 THE BatCave|GOTHAM CITY|"])

//table[@id="reporting_view_report_dg_main_body"]//tr//td[3]/div/span[@title="14"]/following::td[5]

HTML 片段是:

<table id="reporting_view_report_dg_main_body" cellspacing="0" style="table-layout: fixed; width: 100%; margin-bottom: 17px;">
<colgroup>
    <tbody>
        <tr class="GFNQNVHJM" __gwt_subrow="0" __gwt_row="0" />
        <tr class="GFNQNVHIN" __gwt_subrow="0" __gwt_row="1"/>
        <tr class="GFNQNVHJM" __gwt_subrow="0" __gwt_row="2"/>
        <tr class="GFNQNVHJM GFNQNVHAN" __gwt_subrow="0" __gwt_row="12"/>
        <td class="GFNQNVHIM GFNQNVHKM GFNQNVHLM GFNQNVHBN"/>
        <td class="GFNQNVHIM GFNQNVHKM GFNQNVHBN"/>
        <td class="GFNQNVHIM GFNQNVHKM GFNQNVHBN"/>
        <div __gwt_cell="cell-gwt-uid-319" style="outline-style:none;"/>
        <span title="14" style="white-space:nowrap;overflow:hidden;text-overflow:ellipsis;empty-cells:show;display:block;padding-right: 1px;">14</span>
    </div>
</td>
<td class="GFNQNVHIM GFNQNVHKM GFNQNVHBN">
    <td class="GFNQNVHIM GFNQNVHKM GFNQNVHBN">
        <div __gwt_cell="cell-gwt-uid-321" style="outline-style:none;">
            <span title="101 BatCave|GOTHAM CITY|" style="white-space:nowrap;overflow:hidden;text-overflow:ellipsis;empty-cells:show;display:block;padding-right: 1px;">101 THE BatCave|GOTHAM CITY|</span>
        </div>
    </td>
    <td class="GFNQNVHIM GFNQNVHKM GFNQNVHBN">
        <td class="GFNQNVHIM GFNQNVHKM GFNQNVHBN"/>
        <td class="GFNQNVHIM GFNQNVHKM GFNQNVHBN"/>
        <td class="GFNQNVHIM GFNQNVHKM GFNQNVHBN"/>
        <td class="GFNQNVHIM GFNQNVHKM GFNQNVHBN"/>
        <td class="GFNQNVHIM GFNQNVHKM GFNQNVHFN GFNQNVHBN"/>
    </tr>
    <tr class="GFNQNVHIN" __gwt_subrow="0" __gwt_row="13"/>
    <tr class="GFNQNVHJM" __gwt_subrow="0" __gwt_row="14"/>
</tbody>

谢谢,里亚兹

最佳答案

不确定这种方法在您的特定情况下的可靠性,但鉴于所提供的内容,您可以通过获取具有 title 属性的 span 元素来获取这两个元素:

elements = driver.find_elements_by_xpath("//table[@id='reporting_view_report_dg_main_body']//span[@title]")
for element in elements:
    print(element.text)

关于python-2.7 - Selenium XPATH 我如何从表第 4 列中的文本在表第 2 列中获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38978561/

相关文章:

java - 如何在 jenkins 中使用 Zap 插件执行 selenium 脚本

java - 使用数组作为测试方法的参数

xslt - 使用 XPath 和 XSLT 检查任意级别的父节点

java - 流利等待 vs WebDriver 等待

c# - 搜索多个属性和元素的 XPath 是什么?

html - 使用 Yahoo YQL 查询 html

python - 在 mac OS X 上使用 python 中的 Tkinter 时出错

python - python 如何将 unicode 和非 unicode 元组视为平等的?

Python 多处理 - 只是不明白

python - 无法从源代码安装 python