用 selenium 元素将元素滚动到屏幕中间

thtygnil  于 2022-12-13  发布在  其他
关注(0)|答案(5)|浏览(335)

有没有办法将元素滚动到屏幕中间?我试过了:

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

但它总是在顶部滚动。

zfycwa2u

zfycwa2u1#

滚动进入视图()

scrollIntoView()方法会将指定的项目卷动至浏览器 windows 的可见区域。
语法:

element.scrollIntoView(alignTo)

参数:

  • alignn(布尔值):可选参数,其中:
  • true:元素的顶部将与可滚动祖先的可见区域的顶部对齐
  • false:元素的底部将与可滚动祖先的可见区域的底部对齐。
  • skipped:它将滚动到元素的顶部。
    注意:根据其他元素的布局,某些元素可能无法完全滚动到顶部或底部。

根据您的 * 用例 ,如果您希望将元素滚动到屏幕中间,而不是使用*scrollIntoView()**作为替代方法,您可以使用以下任一选项 * 滚动窗口 *:

    • 向下滚动 *:
      *scroll()
((JavascriptExecutor)driver).executeScript("scroll(0, 250);");

*一个月六个月一次

((JavascriptExecutor)driver).executeScript("window.scrollBy(0,250)", "");
laximzn5

laximzn52#

正如我所看到的,这个问题已经有了一些很好的答案,但有很多方法可以做滚动向下/滚动向上在** selenium **。在所有这些方法中,我想增加一个更多的这个问题。
您可以使用Action类别来达成此目的:

代码

Actions action = new Actions(driver);
action.sendKeys(Keys.PAGE_DOWN).build().perform();

您可以根据需要多次调用sendKeys(Keys.PAGE_DOWN)。如下所示:

action.sendKeys(Keys.PAGE_DOWN).sendKeys(Keys.PAGE_DOWN).build().perform();

等等!
另一种方法是使用JavaScript。@Ishita Shah已经提供了这种解决方案。

slwdgvem

slwdgvem3#

试试这个:

driver.findElementByAndroidUIAutomator("new UiScrollable(new UiSelector()).scrollIntoView(new UiSelector().text(\"Text of element upto which you want to scroll down\"));");
xhv8bpkk

xhv8bpkk4#

您可以根据网页部分进行滚动,
如果你想滚动网页,按中间。这意味着去底部的位置,直到所需:
语法:

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollBy(0,200)");

它将垂直向下滚动。

guz6ccqo

guz6ccqo5#

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].scrollIntoView({block: 'center', inline: 'nearest'});");

相关问题