Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用selenium从网页获取链接_Javascript_Jquery_Html_Selenium_Selenium Webdriver - Fatal编程技术网

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

Javascript 如何使用selenium从网页获取链接,javascript,jquery,html,selenium,selenium-webdriver,Javascript,Jquery,Html,Selenium,Selenium Webdriver,我们有没有办法得到webelement的链接位置。我知道我们可以从webelement获取文本,也可以通过使用GetAttributeRef方法来确定href link的链接位置。但我的要求是获得所有链接。比如说, 1.< a href="http://www.java2s.com/">Example</a> 2. < a onclick="Test.TestFunction("9","testNumber","2");" style="cursor:pointe

我们有没有办法得到webelement的链接位置。我知道我们可以从webelement获取文本,也可以通过使用GetAttributeRef方法来确定href link的链接位置。但我的要求是获得所有链接。比如说,

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>. 

是否有任何方法可以获取两个元素的链接位置。一个是简单链接,另一个是调用JavaScript函数生成的链接。

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

您的str变量是什么?据我所知,在您尝试使用它之前,它没有声明。单击链接可能会更改浏览器的内容,因此.getText和.getAttribute`方法将失败,除非您在获得这些详细信息后单击。感谢Mark的回复。是的,当调用“单击”功能时,您是对的,它会更改浏览器的内容,因此脚本会失败。str是str=we.toString的字符串变量;但是它显示的文本代码是由Selenium获取的。如果您对上述代码感到满意,请选择上面的箭头。这个答案很有用。对不起。为什么我得到这个答案的-1。嗨,Karim Narsindani,我有一个快速的问题,我想你想首先打开父浏览器,获取href链接,然后在父页面中逐个单击子链接,然后打开新页面意味着子页面,然后返回到父页面,单击下一个链接,然后打开子页面,获取url和标题,然后像这样返回到父页面??我想你应该试着得到所有父母和孩子的HREF。如果这是你的问题?如果是,我有这个问题的答案。谢谢莎拉宝贵的投入。这个问题背后的原因是,我正在为我的公司web应用程序开发使用selenium验证链接的工具。但是,我能够验证使用href链接“www.test.test/test1”的链接,但是当用户单击按钮系统生成链接时,我们也有一些链接,如href和javascript函数。是否有任何方法可以在不丢失现有页面的情况下生成此类链接。或者我们可以得到javascript函数名,而不是我认为使用selenium我们可以执行所需的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"));
    }
    }
    }
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"));
    }
    }
    }