html - 根据一个或多个列值查找或更改同一表行上的项目

标签 html selenium xpath selenium-webdriver

我为此苦苦挣扎了很长时间,所以希望这会对某人有所帮助。

问题是这样的:

  • 我需要通过匹配一个或多个特定单元格值来找到一行
  • 然后更改同一行中一个或多个单元格的值。
  • 使问题更加复杂的是,这些单元格中的值可能被多个不同数量的 DIV(以及可能的其他 HTML 标记)嵌套。

  • 下面是一些人为的 HTML,但希望能说明这一点:
    <table>
        <th>Select</th>
        <th>First Name</th>
        <th>Middle Name</th>
        <th>Family Name</th>
        <th>Comment</th>
        <tbody>
            <tr>
                <td><input type="checkbox" /></td>
                <td><div><div><span>John</span></div></div></td>
                <td></td>
                <td><span>Smith</span></td>
                <td><span>Nice guy.</span></td>
            </tr>
            <tr>
                <td><input type="checkbox" /></td>
                <td><div><div><div><div><span>John</span></div></div></div></div></td>
                <td></td>
                <td><span>Doe</span></td>
                <td><span>Jolly decent cricketer.</span></td>
            </tr>
            <tr>
                <td><input type="checkbox" /></td>
                <td><div><div><div><div><span>Jane</span></div></div></div></div></td>
                <td></td>
                <td><span>Doe</span></td>
                <td><span>Great swimmmer.</span></td>
            </tr>
            <tr>
                <td><input type="checkbox" /></td>
                <td><span>Jack</span></td>
                <td></td>
                <td><span>Sprat</span></td>
                <td><span>Spiffing golfer.</span></td>
            </tr>
        </tbody>
    </table>
    

    问题是,例如,是否有一种或多或少通用的方式来访问 John Doe 的复选框?

    最佳答案

    试试下面: -

    //tbody/tr/td[text()='John']/following-sibling::td[text()='Doe']/preceding-sibling::td[1]/input[@type='checkbox']
    

    在这里,我们尝试找到具有文本 的“td”标签。约翰 及其以下兄弟,即“td”标签,使其具有文本能源部 .一旦完成,然后我们会尝试找到前面的 sibling ,这首先是为了复选框。
    这更加健壮,意味着它不考虑标记中名字和姓氏的顺序。

    关于html - 根据一个或多个列值查找或更改同一表行上的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31924277/

    相关文章:

    html - 使导航栏透明并将图像放在后面

    javascript - 如何进行对 Angular 线过渡?

    html - 如何隐藏HTML中固定位置元素后面的文本

    html - 剥离 html 文档中所有不必要的属性

    java - 我创建了一个页面对象模型,但我的登录页面为空。我该如何解决这个问题?

    shell - 如何使用 scrapy response.xpath 提取 HTML 属性的值?

    xml - 如何在xslt中提取这种格式

    html - 如何在 Selenium 定位器中定位 "::after"元素?

    java - 找不到具有 ID 的元素,即使它存在

    SQL 服务器 : XPath to iterate through multiple elements and return values