当前位置: 首页 > 知识库问答 >
问题:

无法获得所有总页面的链接

邰钟展
2023-03-14

我试图在谷歌中键入selenium,并在记事本文件中获取结果的所有标题文本。我想得到所有页面上的所有可用链接,直到搜索的最后一页。但只有第一页的链接,我得到。当我调试并运行时,它可以工作大约10页。帮我做这件事。

JAVA代码:

public class weblink 
{
    public static void main(String[] args) throws IOException, InterruptedException {
    WebDriver driver;
    System.setProperty("webdriver.chrome.driver", "E:\\disha.shah/myWork/eclipse/chromedriver.exe");
    driver = new ChromeDriver();
    driver.manage().window().maximize();
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    driver.get("http://www.google.co.in/");
    driver.findElement(By.id("lst-ib")).sendKeys("Selenium");
    driver.findElement(By.id("_fZl")).click();

    PrintStream ps = new PrintStream(new File(("E:\\disha1.txt")));
    do
     {
        List<WebElement> findElements = driver.findElements(By.xpath("//*[@id='rso']//h3/a"));  
        for (WebElement webElement : findElements)      
        {
            System.out.println("-" + webElement.getText()); // for title
          //System.out.println(webElement.getAttribute("href")); // for links
            driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
            System.setOut(ps); 
            driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
        }   

        Thread.sleep(1000);


        if(driver.findElement(By.linkText("Next")).isDisplayed()== true)
        { 
            driver.findElement(By.linkText("Next")).click();     
        }
        else
        {   
            System.out.println("All Link is Covered");
        }


    }
    while(driver.findElement(By.linkText("Next")).isDisplayed() );
    {
        //Thread.sleep(2000);
    }


    }
 }

共有1个答案

王叶五
2023-03-14

我做了一些更正。更新的代码在下面。-

public static void main(String[] args) throws IOException, InterruptedException 
{
    WebDriver driver;
    System.setProperty("webdriver.chrome.driver", "D:/Application/chromedriver.exe");
    driver = new ChromeDriver();
    driver.manage().window().maximize();
    driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
    driver.get("http://www.google.co.in/");

    driver.findElement(By.id("lst-ib")).sendKeys("Selenium");
    driver.findElement(By.id("_fZl")).click();
    Boolean nextButtonFlag = true;
    // Create two separate file storing the result
    PrintStream searchTitle = new PrintStream(new File(("D:\\Titles.txt")));
    PrintStream searchLink = new PrintStream(new File(("D:\\Links.txt")));
    do
     {
               List<WebElement> findElements = driver.findElements(By.xpath("//h3[@class='r']/a"));  
               for (WebElement element : findElements)
               {
                   // Write all received links and title inn txt file
                   searchTitle.append(element.getText()+"\n");
                   searchLink.append(element.getAttribute("href")+"\n");
               }   
                    Thread.sleep(2000);
               try
               {
                   driver.findElement(By.linkText("Next")).click();
                }
               catch(Exception e)
               {
                   //  no more next button to navigate further link
                   nextButtonFlag=false;
               }

               Thread.sleep(2500);
        }
        while(nextButtonFlag);

          System.out.println("Execution done");
          searchTitle.close();
          searchLink.close();
    }
 }
 类似资料:
  • 我的代码不会获取这样的链接。使用doc.select也没有帮助。我的问题是,如何从页面中获得所有链接? 编辑:我想我知道问题出在哪里了。我遇到麻烦的页面写得很糟糕,HTML验证器抛出了大量的错误。这会引起问题吗?

  • http://www.argenteam.net/movie/40749/American.Reunion.%282012%29 我正在尝试使用JSOUP获得该页面上的所有类似于这样的链接: 问题是我无法获得这种链接。做了一些极端的事情,我尝试了下面的代码来获得页面上的所有链接,但是这个“a[href]”再次出现在列表中。 最终编辑与解决方案: 该网站请求一个cookie来显示我需要的链接,因为这

  • 本文向大家介绍php获取网页上所有链接的方法,包括了php获取网页上所有链接的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php取得网页上所有链接的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的php程序设计有所帮助。

  • 我尝试了下面给出的代码,但每次运行代码时,都会有一些链接添加到missing。我想在一个列表中获取页面中的所有链接,这样我就可以使用切片来访问我想要的任何链接。 有没有办法在不遗漏任何元素的情况下获得所有元素。

  • 本文向大家介绍python获取指定网页上所有超链接的方法,包括了python获取指定网页上所有超链接的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python获取指定网页上所有超链接的方法。分享给大家供大家参考。具体如下: 这段python代码通过urllib2抓取网页,然后通过简单的正则表达式分析网页上的全部url地址 希望本文所述对大家的python程序设计有所帮助。

  • 当我运行此代码时,会出现以下错误:- 组织。openqa。硒。StaleElementReferenceException:stale元素引用:元素未附加到页面文档 我也尝试了含蓄的等待,但得到了同样的问题。