如何使用selenium从网页获取链接

How to get links from web page using selenium

本文关键字:获取 链接 网页 何使用 selenium      更新时间:2023-09-26

有什么方法可以获得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函数时生成的链接。

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"));
    }
    }
    }

您需要单击链接来执行javascript函数,该函数将返回一个将用作目标的链接。单击链接将转到目标页面,这将使以前的webElements不可用,因此无法检索该链接。如果不点击链接,javascript函数将不会执行和生成链接。