Не удается выполнить вертикальную прокрутку

#java #selenium

#java #селен

Вопрос:

Я хочу щелкнуть по веб-элементу и выполнить какое-то действие.Для этого элемент должен быть видимым. Я написал приведенный ниже код. Какая работа заключается в выполнении вертикальной прокрутки до веб-элемента, не видна. Но проблема в том, что код прокручивается за пределы элемента, и элемент поднимается. Я хочу прокрутить до веб-элемента.

Приведенный ниже код, который я написал для вертикальной прокрутки до веб-элемента, виден

 WebElement element = driver.findElement(By.xpath("//div//span[@title='Brand']"));
        ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
        Thread.sleep(500);
  

введите описание изображения здесь

Ответ №1:

Хорошим подходом к решению этой проблемы было бы:

  1. Проверьте, виден ли элемент
 protected boolean isElementPresent(WebElement element) {
       try {
           element.isDisplayed();
           return true;
       } catch (NoSuchElementException e) {
           return false;
       }
   }
  
  1. Если элемент виден, выполните свое действие.
 public void scroll() {
       while (!isElementPresent(element)) {
           doSomething();
           sleep(1000);
       }
   }
  
  1. Определите свое действие
 protected void doSomething() {
       WebElement element = driver.findElement(By.xpath("//div//span[@title='Brand']"));
       ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
   }