18

我正在尝试使用 Selenium Webdriver 查找链接。我不想通过链接文本找到它,只有输入的实际链接。这可以通过 xpath 方法使用 Selenium 的 find 元素来完成,但是当我只知道那个 href 文本的开头而不是整个文本时,语法是什么?

我想我正在使用某种以方法开头的 xpath 链接定位器。我没有准备好这方面的代码。

4

3 回答 3

30

您可以使用start-within xpath 来定位以特定文本开头的属性值。

例如,假设您在页面上有以下链接:

<a href="mylink_somerandomstuff">link text</a>

然后,您可以使用以下 xpath 查找具有以“mylink”开头的 href 的链接:

//a[starts-with(@href, "mylink")]
于 2012-09-06T13:16:31.957 回答
4

如果您不知道 href 以什么开头,也可以使用 contains:

<a href="link_with_key_word_in.html">Link</a>

要找到此链接,您可以使用:

By.xpath("//a[contains(@href, 'key_word')]"));
于 2013-06-13T13:49:51.713 回答
0

只需在 Mozilla Firefox 中安装这些插件:Firebug 和 FirePath。

转到firefox中的链接,并使用F12键调用firebug。

然后选择 FirePath。

单击检查元素按钮并选择元素。它将显示元素的 xpath。

例子:

<input type = "text" id ="text-checking123"> </input>

元素的 Xpath 将是

//input[starts-with(@id, 'text-')]

然后在java代码中使用它。

**Please do add comment, if the code works for you. It will help others to view the answer.**
于 2014-01-30T10:55:07.603 回答