如何获取标签a的href属性的确切文本?

时间:2016-02-18 23:26:44

标签: selenium absolute relative

我使用selenium来获取href属性,lLinks是我的web元素,它具有“href”属性。

String url = lLinks.getAttrbute("href");

如果我的'a'标记的href是<a href='/home'>Home</a>之类的相对路径 ,网址将返回http://www.domain.com/home

如何让网址等于href属性的确切文本?

3 个答案:

答案 0 :(得分:4)

我认为你不能得到那个“href”。 Selenium仅提供完整路径或相对路径。请参阅以下代码:

String href = linx.getAttribute("href");
System.out.println("Text is" + href);
String pathName = linx.getAttribute("pathname");
System.out.println("Text is" + pathName);
// Results
// Text is http://www.amazon.com/gp/yourstore/home/ref=nav_cs_ys/180-1519742-0316250
// Text is /gp/yourstore/home/ref=nav_cs_ys/180-1519742-0316250

答案 1 :(得分:1)

您可以通过阅读整个元素来获取href属性:

lLinks.getAttribute("outerHTML")

哪个给你,例如:

<a id="button-id" href="#">Click me!</a>

然后您可以使用pattern matching to get the href attribute

答案 2 :(得分:0)

下面的代码将给出确切的href值。

List<WebElement> allLinks = getDriver().findElements(By.tagName("a"));
for (WebElement e : allLinks) {
String html = e.getAttribute("outerHTML");
Pattern p = Pattern.compile("href=\"(.*?)\"");
Matcher m = p.matcher(html);
String relHref = null;
if (m.find()) {
relHref = m.group(1); 
}
System.out.println(relHref);