Как обрабатывать несколько scrollintoview в selenium webdriver

#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) эта ошибка