我使用selenium来获取href属性,lLinks是我的web元素,它具有“href”属性。
String url = lLinks.getAttrbute("href");
如果我的'a'标记的href是<a href='/home'>Home</a>
之类的相对路径
,网址将返回http://www.domain.com/home。
如何让网址等于href属性的确切文本?
答案 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>
答案 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);