Java 使用selenium将元素滚动到屏幕中间
有没有办法将元素滚动到屏幕中间? 我试过:Java 使用selenium将元素滚动到屏幕中间,java,selenium,Java,Selenium,有没有办法将元素滚动到屏幕中间? 我试过: ((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", element); 但它总是在顶部滚动。试试这个: driver.findElementByAndroidUIAutomator("new UiScrollable(new UiSelector()).scrollIntoView(new UiSelector().text(\"Text of el
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", element);
但它总是在顶部滚动。试试这个:
driver.findElementByAndroidUIAutomator("new UiScrollable(new UiSelector()).scrollIntoView(new UiSelector().text(\"Text of element upto which you want to scroll down\"));");
ScrollingToView()
该方法将指定的元素滚动到浏览器窗口的可见区域
语法:
element.scrollIntoView(alignTo)
参数:
- alignTo(布尔):可选参数,其中:
:元素的顶部将与可滚动祖先的可见区域的顶部对齐true
:元素的底部将与可滚动祖先的可见区域的底部对齐false
:它将滚动到元素的顶部跳过
根据您的用例,如果您希望将元素滚动到屏幕中间,而不是使用
滚动视图()
,您可以使用以下任一选项滚动窗口:
- 向下滚动:
滚动()
((JavascriptExecutor)driver).executeScript("scroll(0, 250);");
((JavascriptExecutor)driver).executeScript("window.scrollBy(0,250)", "");
window.scrollBy()
((JavascriptExecutor)driver).executeScript("scroll(0, 250);");
((JavascriptExecutor)driver).executeScript("window.scrollBy(0,250)", "");
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollBy(0,200)");
它将垂直向下滚动。正如我所看到的,这个问题已经有了一些很好的答案,但是在selenium中有很多方法可以做向下滚动/向上滚动。在所有这些方面中,我想对这个问题再补充一点 为此,可以使用Action类: 代码
Actions action = new Actions(driver);
action.sendKeys(Keys.PAGE_DOWN).build().perform();
您可以根据需要多次调用sendKeys(key.PAGE\u DOWN)
。像这样:
action.sendKeys(Keys.PAGE_DOWN).sendKeys(Keys.PAGE_DOWN).build().perform();
等等
另一种方法是使用JavaScript@石田沙阿已经提供了解决方案。我尝试了所有方法……当我滚动元素时,我的元素位于顶部,并由头带覆盖。头带始终覆盖第一个元素。找到的解决方案:解决方案:js.executeScript(“window.scrollBy(0,新矩形(Toolkit.getDefaultToolkit().getScreenSize().getScreenSize()/2)”;