Java selenium 使用 xpath 查找元素

标签 java selenium xpath

我正在开发一个网络应用程序,我需要找到一个特定的元素,但我无法用我的 xpath 找到它。 这是我试图在其中查找元素的 html 代码

<table>
    <tr>
        <th class="details">
            <label>Name</label>
        </th>
        <td class="data">
            <div id="...">
                <div id="..."></div>
                <input id="..." type="text">
            </div>
        </td>
    </tr>
 ..........
</table>

我成功找到了它,但是当我注意到 id 是自动生成的时,我陷入了困境。我试图解决这个问题,找到包含文本“名称”的标签,然后找到 sibling ,但什么也没有。这是我的 xpath:

//*[text()[contains(.,'Name')]]/../following-sibling::td

最佳答案

您应该尝试使用下面的xpath:-

String xpath = "(.//label[text() = 'Name']/following::input)[1]";

或者

String xpath = ".//label[text() = 'Name']/../following-sibling::td//input";

或者

String xpath = "(.//input[preceding::label[text() = 'Name'])[1]";

或者

String xpath = ".//input[ancestor::td[preceding-sibling::th/label[text() = 'Name']]]";

您可以使用上述任何一个 xpath 来查找所需的输入元素,如下所示:-

browser.findElement(By.xpath(xpath));

关于Java selenium 使用 xpath 查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39319847/

相关文章:

javascript - Wicked-Good-XPath 评估 xPathResult 包含 [异常 : TypeError]

java - 如何等到没有带有属性ready_to_send的span标签,或者换句话说,没有带有send属性的span标签

java - 是否可以在没有文档的情况下在 MongoDB 中创建一个集合?

java - 类型HttpServletRequest的方法SetAttribute未定义

java - 在eclipse中将checkout svn源代码导入为java项目

java - Selenium跳过具有隐藏属性的html元素

Python Selenium元素点击拦截

java - 编辑外部存储中的文件

python - Selenium 无法在 CentOS 中启动 Chromedriver

python - 使用 "\d"通过 Scrapy for Python 2 从 Div 中提取数据时出现 XPath 错误