如何垂直向下滚动直到显示我想要的文本

时间:2018-07-06 07:32:59

标签: javascript java selenium selenium-webdriver scroll

我尝试过

((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 :(得分:1)

根据您的代码试用,我认为您非常接近。您需要先诱使 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);

答案 1 :(得分:0)

这就是我滚动到DOM元素的方式(使用jquery,告诉我是否需要香草):

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

此代码将.scrollToThisElement垂直居中