【问题标题】:Get link text - Selenium, Java获取链接文本 - Selenium, Java
【发布时间】:2013-11-17 21:36:54
【问题描述】:

我正在尝试从网页中获取所有链接。尝试使用

WebDriver driver = FirefoxDriver();   
List<WebDriver> elements = driver.findElements(By.tagName("a")); 

,但是我得到 0 链接,我不明白为什么,有人可以帮助我吗?

我需要从我需要 url 文本中获取一部分。

更新 谢谢,我想找到了我要找的东西:

List<WebElement> elements = driver.findElements(By.tagName("a")); 
for (int i = 0; i < elements.size(); i++) {
   System.out.println(elements.get(i).getAttribute("href"));
}

【问题讨论】:

  • 只是一个建议,而不是 for loop 使用 for..each 语法。 for(WebElement element: elements)

标签: java selenium selenium-webdriver


【解决方案1】:

您忘记致电WebDriver#get 以访问某些页面。

WebDriver driver = FirefoxDriver();   
driver.get("www.google.com");
List<WebElement> elements = driver.findElements(By.tagName("a")); 

【讨论】:

    【解决方案2】:

    在提供的代码中没有检索到任何网站。尝试访问网页,然后获取 a 元素。还尝试从List&lt;WebDriver&gt; 更改为List&lt;WebElement&gt;

       WebDriver driver = FirefoxDriver();
       driver.get("http://www.google.com"); 
       List<WebElement> elements = driver.findElements(By.tagName("a")); 
    

    请参阅此示例:http://www.seleniumhq.org/docs/03_webdriver.jsp#introducing-the-selenium-webdriver-api-by-example

    以下示例适用于我:

     public class SeleniumTest {
    
        public static void main(String[] args) {
            WebDriver driver = new FirefoxDriver();
    
            // And now use this to visit Google
            driver.get("http://www.google.com");
            List<WebElement> elements = driver.findElements(By.tagName("a"));
    
            for (WebElement element : elements) {
                System.out.println(element.getText());
            }
        }
    }
    

    【讨论】:

    • 是的,我快了 17 秒:-D
    • 我没有,我只是忘了在这个问题中写这部分。
    • 向我们展示所有相关代码,包括您正在测试的页面
    • @PetrMensik 我的回答更详细。 J/K
    • @usr999 查看有关List&lt;WebElement&gt;的更新
    猜你喜欢
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    • 2022-12-18
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多