Как прокрутить вертикально вниз, пока не отобразится нужный текст - PullRequest
0 голосов
/ 06 июля 2018

Я пытался

((JavascriptExecutor) driver).executeScript("windows.scrollBy(0,500)");

И

((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", element);

И

WebElement lastElement = driver.findElement(By.xpath("value of locator"));
int y = lastElement.getLocation().getY();
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("window.scrollTo(0,"+y+")");
Thread.sleep(3000);

Полоса прокрутки моего окна опускается, но я хочу прокрутить полосу прокрутки моего приложения. enter image description here

Как и в прикрепленном изображении после нажатия кнопки o, настройки открывают дополнительные параметры, и мне нужно прокрутить, чтобы увидеть ниже параметры

Ответы [ 2 ]

0 голосов
/ 09 июля 2018

Что касается ваших испытаний кода, я думаю, вы были довольно близки. Вам нужно вызвать WebDriverWait , чтобы требуемый элемент был видимым , а затем использовать метод executeScript() для scrollIntoView следующим образом:

WebElement lastElement = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("xpath_of_the_desired_element"))).click();
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);",element);
0 голосов
/ 06 июля 2018

Вот как я прокручиваю до элемента моего DOM (с помощью jquery, скажите, если вам нужен ваниль):

$('#elementToScroll').animate({
            scrollTop: $("#scrollToThisElement").offset().top - $(window).height() / 2
 }, 0);

Этот код будет центрироваться по вертикали .scrollToThisElement

...