Здесь вы сказали, что переключаетесь на всплывающее окно. то есть это не полоса прокрутки драйвера. Это полоса прокрутки уровня приложения. Следовательно, когда вы используете javascriptexecutor, он не будет прокручивать ваше всплывающее окно.
Чтобы устранить эту проблему, выполните следующие действия:
1) Переключиться во всплывающее окно
2) Нажмите на любой элемент, чтобы активировать DOM
3) Напишите также xpath для вашего DOM
4) Используйте приведенный ниже код для прокрутки в зависимости от ваших требований:
public static boolean scrollWebTable(String dom, String toSearch, String direction) {
driver.findElement(By.xpath(dom)).click();
int flag = 0;
int count = 0;
do {
try {
driver.findElement(By.xpath(dom)).click();
WebElement ele = Shared.driver.findElement(By.xpath(toSearch));
flag = 1;
} catch (Throwable e) {
switch (direction.toLowerCase()) {
case "right":
driver.findElement(By.xpath(dom)).sendKeys(Keys.RIGHT);
break;
case "left":
driver.findElement(By.xpath(dom)).sendKeys(Keys.LEFT);
break;
case "down":
default:
driver.findElement(By.xpath(dom)).sendKeys(Keys.PAGE_DOWN);
break;
case "up":
driver.findElement(By.xpath(dom)).sendKeys(Keys.PAGE_UP);
break;
}
}
} while ((flag == 0) || ((++count) == 250));
return (flag == 1);
}
вызовите этот метод из вашего класса POM, передавая DOM и elementToSearch xpath и в каком направлении вы хотите прокрутить UP, DOWN, RIGHT или LEFT.
Здесь, пока будет выполняться цикл (т.е. он будет прокручивать) страницу, пока не отобразится ожидаемый элемент.
Примечание: этот код будет работать только тогда, когда ваше всплывающее окно будет прокручиваться, когда на клавиатуре находятся клавиши со стрелками.