Selenium Webdriver - как распечатать описание результатов поиска Google на консоли - PullRequest
0 голосов
/ 02 марта 2020

Описание проблемы выглядит следующим образом: Откройте www.google.com в браузере. Добавьте селен hq в результаты поиска для поиска по ссылке в википедии на селен hq. распечатать описание, которое отображается рядом со ссылкой на консоль.

результат поиска иногда появляется на 1-й странице, а иногда нет. Я могу искать на 1-й странице, и если его там нет, перейдите на 2-ю страницу и так далее. но не в состоянии получить это описание. Мой код:

    WebDriver driver = null;
    String baseUrl = "https://www.google.com";


        System.setProperty("webdriver.gecko.driver", "C:\\SeleniumDrivers\\geckodriver.exe");

        driver = new FirefoxDriver();
        driver.manage().window().maximize();

        driver.get(baseUrl);
        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

        driver.findElement(By.xpath(".//input[@class='gLFyf gsfi']")).sendKeys("Selenium HQ");

        driver.findElement(By.xpath(".//input[@class='gLFyf gsfi']")).sendKeys(Keys.ENTER);

        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

        List<WebElement> linkElements = new ArrayList<WebElement>();
        ListIterator<WebElement> itr = null;
        WebElement toClick = null;

        int pageNumber = 1;
        WebDriverWait wait = new WebDriverWait(driver, 10);
        boolean flag = false;
        while (!flag) 
        {
            linkElements = wait.until(ExpectedConditions
                .presenceOfAllElementsLocatedBy(By
                    .xpath("//h3[@class='s']")));
            itr = linkElements.listIterator(); // re-initializing iterator
            while (itr.hasNext()) 
            {
                toClick = itr.next();
                if (toClick.getText().contains("Wikidata")) 

                {
                    String desc = toClick.getText();
                    System.out.println(desc);
                    flag = true;
                    break;
                }
            }
            if (!flag) 
            {
                driver.findElement(By.xpath("//a[@id='pnnext']/span[1]")).click();
                pageNumber++;
                linkElements.clear(); // clean list
               // wait.until(ExpectedConditions.textToBePresentInElementLocated(
                        //By.xpath("//div[@class='st']"), pageNumber + ""));
            }
        }
        driver.close();

в поисках решения этой проблемы ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...