Selenium Python从表中选择第3列的链接

时间:2016-02-11 16:06:25

标签: python-2.7 selenium xpath selenium-webdriver

我有一个包含一些行和列的表的页面。第一列有一个复选框(索引为0)。第二列有名字。第3列有一个名为view的链接。表中有一些数据行。 我想点击视图链接,其名称为“Selenium_CRM_For_Edit_Test” 名称可以是行表中的任何位置。

我可以使用以下XPATH识别列名:

//span[contains(., "Selenium_CRM_Edit_Test")]

我不知道如何到达具有视图链接的下一列

我尝试过以下XPath:

//span[contains(., "Selenium_CRM_Edit_Test")]/../preceding-sibling::td/div/span[contains(text(), "view")]

这不起作用。我认为前兄弟会下到下一个TD元素

HTML代码段为:

<table id="data_configuration_data_previews_ct_fields_body" cellspacing="0" style="table-layout: fixed; width: 100%;">
<colgroup>
<tbody>
    <tr class="GJPPK2LBFG" __gwt_subrow="0" __gwt_row="0">
    <tr class="GJPPK2LBEH" __gwt_subrow="0" __gwt_row="1">
    <tr class="GJPPK2LBFG GJPPK2LBMG" __gwt_subrow="0" __gwt_row="18">
    <td class="GJPPK2LBEG GJPPK2LBGG GJPPK2LBHG GJPPK2LBNG">
        <td class="GJPPK2LBEG GJPPK2LBGG GJPPK2LBNG">
            <div __gwt_cell="cell-gwt-uid-237" style="outline-style:none;">
                <span class="linkhover" title="Selenium_LADEMO_CRM_DONOTCHANGE" style="white-space:nowrap;overflow:hidden;text-overflow:ellipsis;empty-cells:show;display:block;color:#00A;cursor:pointer;">Selenium_CRM_For_Edit_Test</span>
            </div>
        </td>
    <td class="GJPPK2LBEG GJPPK2LBGG GJPPK2LBNG">
        <div __gwt_cell="cell-gwt-uid-238" style="outline-style:none;">
            <span class="linkhover" title="view" style="white-space:nowrap;overflow:hidden;text-overflow:ellipsis;empty-cells:show;display:block;color:#00A;cursor:pointer;">view</span>
        </div>
    </td>
    <td class="GJPPK2LBEG GJPPK2LBGG GJPPK2LBNG">
    <td class="GJPPK2LBEG GJPPK2LBGG GJPPK2LBBH GJPPK2LBNG">
    </tr>
<tr class="GJPPK2LBEH" __gwt_subrow="0" __gwt_row="19">
<tr class="GJPPK2LBFG" __gwt_subrow="0" __gwt_row="20">
</tbody>

如何访问名为Selenium_CRM_For_Edit_Test的链接?

谢谢, 里亚兹

1 个答案:

答案 0 :(得分:1)

假设您要找到

<span class="linkhover" title="view" style="white-space:nowrap;overflow:hidden;text-overflow:ellipsis;empty-cells:show;display:block;color:#00A;cursor:pointer;">view</span>

元素,基于

中的文字
<span class="linkhover" title="Selenium_LADEMO_CRM_DONOTCHANGE" style="white-space:nowrap;overflow:hidden;text-overflow:ellipsis;empty-cells:show;display:block;color:#00A;cursor:pointer;">Selenium_CRM_For_Edit_Test</span>

您可以使用following轴:

//span[contains(., "Selenium_CRM_Edit_Test")]/following::span[@class="linkhover"]