当前位置: 首页 > 知识库问答 >
问题:

Java硒元素与xpath

柯冯浩
2023-03-14

我正在删除一个网络应用程序,我需要找到一个特定的元素,但我不能用我的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

共有2个答案

徐翔
2023-03-14

试试下面的xpath

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

假设DOM结构保持不变。

东门奕
2023-03-14

您应该尝试使用下面的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));
 类似资料:
  • 我正在测试一个网站,以了解如何在C#中使用硒。我无法找到登录表单元素,因为表单输入元素没有任何标识符,而且xpath在我的代码中不起作用。 我包括了一张inspect元素代码的照片,我在检查相关的登录表单元素时看到了该代码。我的代码如下。 当然,我为密码包含的xpath是一个占位符,但它应该看起来与用户名相似。 在使用chrome的copy复制xpath时 我已经找了几个小时的答案,但什么都找不到

  • 用我在selenium的初学者知识,我试图找到点击元素,打开链接。这些项目的链接没有href。我如何执行点击正确的元素打开链接。 我正在使用python、selenium、chrome web驱动程序、BeautifulSoup。所有库都已更新。 下面是示例html片段,其中有一个我需要使用selenium点击的标题。请让我知道,如果你需要更多的html源。此代码来自仅限“登录”的网站。

  • 问题内容: 我已经用BeautifulSoup做到了,但是有点麻烦,我想弄清楚是否可以直接用Selenium做到。 假设我有以下HTML,这些HTML在页面源中使用相同的元素但内容不同重复多次: 我需要建立一个字典,每个人的条目如下: 通过执行以下操作,我可以轻松地让Selenium生成每个顶级元素的内容列表: 但是,我无法遍历列表,因为上述方法不会将范围/源范围缩小到该元素的内容。 如果我尝试做

  • 任何提示都会很有帮助!

  • 大家好,我正试图在网站中找到一个元素,但出于某种原因,它不允许我。该网页是Reddit的登录形式,我尝试输入用户名和密码,但当我列出所有输入时,它只出现在顶部搜索栏中。我想这是因为它就像在另一个“标签”一样,它会弹出到前面,但我不知道如何管理它。提前谢谢。

  • 当用触发时,事件错误表示元素不可见