Selenium Java-Obtenir la liste des URL de la recherche Google et prendre une correspondance de comptage d'un texte d'url spécifique


Je cherche une logique / code qui va entrer du texte selenium dans google.com et à partir des résultats de recherche, il récupérera la première liste des 10 URL et à partir de cette liste, il comptera les URL commençant par www.seleniumhq.org .

Jusqu'à présent, mon code est capable d'afficher la première liste des 10 URL:

public static WebDriver driver;

public static void main(String[] args) throws InterruptedException {
    driver = new FirefoxDriver();
    String url = "https://google.com";
    driver.get(url);
    WebElement find = driver.findElement(By.id("lst-ib"));
    find.sendKeys("Selenium");
    Thread.sleep(2000);
    WebElement click = driver.findElement(By.name("btnG"));
    click.click();
    Thread.sleep(2000);
    List<WebElement> listings = driver.findElements(By.tagName("div").xpath("//cite[@class='_Rm']"));
    listings.size();
    System.out.println("Fetched URL's are as follows:-");

    for (WebElement loop : listings) {
        System.out.println(loop.getText());

        String filtering=loop.getText();
        boolean filtered=filtering.startsWith("www.seleniumhq.org/");

        int size1 = filtering.split("www.seleniumhq.org").length-1;

        System.out.println(size1);
    }
}

Une aide ?

Author: haihui, 2016-03-04

1 answers

Je ne suis pas sûr de ce que vous essayez dans cette ligne où vous utilisez split dans ce cas. Mais si votre motif est d'obtenir simplement le nombre d'URL commençant par 'www.seleniumhq.org', j'ai changé votre boucle for et je suis capable d'obtenir le bon nombre:

    int size1 = 0;
    for (WebElement loop : listings) {

        System.out.println(loop.getText());

        String filtering=loop.getText();
        if(filtering.startsWith("www.seleniumhq.org"))
            size1++;
    }
    System.out.println("Total count : "+size1);
 0
Author: Prateek, 2016-03-07 04:37:48