使用下面的代码,我从链接元素中获得href
。
Sting url
List<WebElement> wElements = DriverFactory.getWebDriver().findElements(By.className("link-class"))
if(wElements.size() > 0) {
url = wElements[0].getAttribute("href")
}
问题是它找到了元素,但没有找到href
属性!!!
如果我使用";Firefox检查器";元素显示为具有正确类名但没有CCD_ 4属性的CCD_。
<div><span class="link-class">The Title</span></div>
如果我使用";查看页面源";相同的元素显示为<a>
标记,它具有href
属性,但类名不同!!!
<a href="/href/attribute/here" class="other-link-class"<span>The Title</span></a>
那么,有没有任何方法可以得到<a>
元素的href
,但如";查看页面源"?当然使用Java。
WebElements中可能存在一些细微的差异,如ViewSource和Inspector工具所示。
这两种方法都是两种不同的浏览器功能,允许用户查看网页的HTMLDOM。主要区别在于,视图源显示了从AUT(测试中的应用程序(传递到浏览器的HTML。其中,Inspect元素是一个开发工具,例如Chrome DevTools,用于在浏览器应用纠错后以及任何Javascript操作DOM后查看DOM树的状态。简而言之,使用ViewSource,您将看到Javascript而不是HTML。HTML错误可能会在Inspect Elements工具中得到更正。
使用Firefox Inspector时,您找不到href
属性,类似地,当您执行测试时,因为<span>
元素不包含href
的属性,并且无法收集href
特性的值。