Java Selenium - arguments[0].scrollIntoView(true) 滚动整个页面而不是某些 DIV

Java Selenium - arguments[0].scrollIntoView(true) scrolls whole page instead of certain DIV

提问人:Word Place 提问时间:11/16/2023 更新时间:11/16/2023 访问量:57

问:

我有以下代码向下滚动整个页面而不是某个 div(我用红色 div 表示我想向下滚动)并且测试失败,因为 webbriver 找不到隐藏在红色滑块下的元素。代码滚动绿色滑块而不是红色滑块。

WebElement element = driver.findElement(By.xpath("//html"));
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element); 

enter image description here

java selenium-webdriver 滚动

评论

0赞 pcalkins 11/17/2023
您需要使用滚动条定位元素。使用 //html 不会是这样。可能是 DIV?右键单击那里的表格/网格,然后选择“检查”以查找具有可滚动样式集的元素。(可能是样式中的“溢出”设置)
0赞 Word Place 11/17/2023
当然,“//html”是一个例子 - 有真正的 XPath。我发现定位器可以溢出元素,但您的解决方案仍然不起作用
0赞 pcalkins 11/17/2023
您可能希望使用 element.scrollBy(x,y)...现在您正在使用 element.scrollIntoView,它将尝试使用主滚动条将目标元素滚动到视图中。如果滚动 div 中有一个特定元素,您想要查看,则可以在其上使用 scrollIntoView,它应该滚动父元素。还要记住,大多数 Selenium 方法在对元素执行操作时会自动将元素滚动到视图中。
0赞 Word Place 11/17/2023
请添加一个示例,谢谢

答: 暂无答案