#selenium-webdriver #js-scrollintoview
#selenium-webdriver #js-scrollintoview
Вопрос:
Мне нужно прокрутить страницу до определенного div, который содержит конкретное слово «Загрузить больше», которое содержит несколько текстов в нескольких div. Вот мой код
List<WebElement> Loadmore = driver.findElements(By.xpath("//div[contains(text(), 'Load more')]"));
for(int i=0;i<Loadmore.size();i )
{
String Loadmoreid = Loadmore.get(i).getAttribute("id");
WebElement Loadmoretxt = driver.findElement(By.xpath("//div[contains(@id, '" Loadmoreid "')]"));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].scrollIntoView(true);", Loadmoretxt);
WebElement Loadmoreweb = driver.findElement(By.id(Loadmoreid));
Actions action = new Actions(driver);
action.moveToElement(Loadmoreweb).click().perform();
}
Ответ №1:
вы пробовали это
Actions action = new Actions(Loadmoretxt);
action.moveToElement(target);
action.perform();
Комментарии:
1. Есть еще 2 загрузочные ссылки, по которым попадает только 2-я ссылка, а не первая ссылка, и я должен изменить ваш код на Actions action = новые действия (драйвер); action.moveToElement(Loadmoretxt); action.click().perform(); потому что, если я использую ваш код, он показывает ошибку
2. используйте этот xpath для выбора первого элемента. WebElement Loadmoretxt = driver.findElement(По.xpath(«//div[содержит(@id, ‘» Loadmoreid «‘)][1]»)); вместо action.click().perform(); просто используйте action.perform() и Loadmoretxt.click();
3. Это не работает, страница не прокручивается до текстовой загрузки, больше видимой, я думаю, что это проблема. Он показывает, что элемент <div> не доступен для просмотра в точке (158, 8) эта ошибка