Описание проблемы выглядит следующим образом: Откройте 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();
в поисках решения этой проблемы ..