有没有办法将元素滚动到屏幕中间?我试过了:
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", element);
但它总是在顶部滚动。
zfycwa2u1#
scrollIntoView()方法会将指定的项目卷动至浏览器 windows 的可见区域。语法:
scrollIntoView()
element.scrollIntoView(alignTo)
参数:
true
false
skipped
根据您的 * 用例 ,如果您希望将元素滚动到屏幕中间,而不是使用*scrollIntoView()**作为替代方法,您可以使用以下任一选项 * 滚动窗口 *:
scroll()
((JavascriptExecutor)driver).executeScript("scroll(0, 250);");
*一个月六个月一次
((JavascriptExecutor)driver).executeScript("window.scrollBy(0,250)", "");
laximzn52#
正如我所看到的,这个问题已经有了一些很好的答案,但有很多方法可以做滚动向下/滚动向上在** selenium **。在所有这些方法中,我想增加一个更多的这个问题。您可以使用Action类别来达成此目的:
代码
Actions action = new Actions(driver); action.sendKeys(Keys.PAGE_DOWN).build().perform();
您可以根据需要多次调用sendKeys(Keys.PAGE_DOWN)。如下所示:
sendKeys(Keys.PAGE_DOWN)
action.sendKeys(Keys.PAGE_DOWN).sendKeys(Keys.PAGE_DOWN).build().perform();
等等!另一种方法是使用JavaScript。@Ishita Shah已经提供了这种解决方案。
slwdgvem3#
试试这个:
driver.findElementByAndroidUIAutomator("new UiScrollable(new UiSelector()).scrollIntoView(new UiSelector().text(\"Text of element upto which you want to scroll down\"));");
xhv8bpkk4#
您可以根据网页部分进行滚动,如果你想滚动网页,按中间。这意味着去底部的位置,直到所需:语法:
JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("window.scrollBy(0,200)");
它将垂直向下滚动。
guz6ccqo5#
JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("arguments[0].scrollIntoView({block: 'center', inline: 'nearest'});");
5条答案
按热度按时间zfycwa2u1#
滚动进入视图()
scrollIntoView()
方法会将指定的项目卷动至浏览器 windows 的可见区域。语法:
参数:
true
:元素的顶部将与可滚动祖先的可见区域的顶部对齐false
:元素的底部将与可滚动祖先的可见区域的底部对齐。skipped
:它将滚动到元素的顶部。注意:根据其他元素的布局,某些元素可能无法完全滚动到顶部或底部。
根据您的 * 用例 ,如果您希望将元素滚动到屏幕中间,而不是使用*
scrollIntoView()
**作为替代方法,您可以使用以下任一选项 * 滚动窗口 *:*
scroll()
*一个月六个月一次
laximzn52#
正如我所看到的,这个问题已经有了一些很好的答案,但有很多方法可以做滚动向下/滚动向上在** selenium **。在所有这些方法中,我想增加一个更多的这个问题。
您可以使用Action类别来达成此目的:
代码
您可以根据需要多次调用
sendKeys(Keys.PAGE_DOWN)
。如下所示:等等!
另一种方法是使用JavaScript。@Ishita Shah已经提供了这种解决方案。
slwdgvem3#
试试这个:
xhv8bpkk4#
您可以根据网页部分进行滚动,
如果你想滚动网页,按中间。这意味着去底部的位置,直到所需:
语法:
它将垂直向下滚动。
guz6ccqo5#