繁体   English   中英

具有XPath的Java硒查找元素

[英]Java selenium find element with xpath

我正在开发一个Web应用程序,所以我需要找到一个特定的元素,但是我的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是自动生成的时,我被卡住了。 我试图解决此问题,找到包含文本“名称”的标签,然后找到同胞,但一无所获。 这是我的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));

在xpath下面尝试

"//label[contains(.,'Name')]/../following-sibling::td/div/input[@type='text']"

假设DOM结构保持不变。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM