我们有什么方法可以获得webelement的链接位置。我知道我们可以从webelement获取文本,并且通过使用getAttribute(“href”)方法我们可以为href链接定位链接。但我的要求是获得所有链接。例如,
1.< a href="http://www.java2s.com/">Example</a>
2. < a onclick="Test.TestFunction("9","testNumber","2");" style="cursor:pointer">This is text display on page</a>.
我有以下给定代码的用户:
public void getAlllink(){
tcount = driver.findElements(By.tagName("a"));
System.out.println("Total Links on page :"+tcount.size());
for(WebElement we:tcount){
System.out.println("Link: "+str);//display element but not link.
we.click(); //This click on link
System.out.println(we.getText()); //display text code that fetched by selenium and not link text
System.out.println(we.getAttribute("href"));//display only one link http://www.java2s.com/
}
有没有办法获得这两个元素的链接位置。一个是简单链接,另一个是在JavaScript函数调用时生成的链接。
答案 0 :(得分:0)
public class Java2sAllLinksCapture {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.get("http://www.java2s.com/");
List<WebElement> links = driver.findElements(By.tagName("a"));
System.out.println(links.size());
for(int i=0;i<links.size();i++){
//print the link text
System.out.println(links.get(i).getText());
//Print the href's
System.out.println(links.get(i).getAttribute("href"));
}
}
}
答案 1 :(得分:0)
您需要单击该链接以执行javascript函数,该函数将返回将用作目标的链接。单击该链接将转到目标页面,这会使以前的webElements不可用,因此无法检索该链接。没有点击链接,javascript函数将不会执行并生成链接。