首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Selenium将元素滚动到视图中(不在导航栏下)

使用Selenium将元素滚动到视图中(不在导航栏下)
EN

Stack Overflow用户
提问于 2018-01-13 15:28:32
回答 2查看 681关注 0票数 0

Selenium click似乎不起作用,除非元素是可见的。因此,我希望在单击之前将元素带到视图中。Selenium中有一个focus方法,但它似乎不会滚动视图。我尝试了Amith solution for Scroll Element into View with Selenium,但有时元素仍然在导航栏下。有没有办法滚动到元素变得可见,并且selenium可以点击它?

EN

回答 2

Stack Overflow用户

发布于 2018-01-16 14:59:18

我通过使用JavaScript找到了一个解决方案

代码语言:javascript
运行
复制
public static void Scroll(this IWebElement elem)
{
     IJavaScriptExecutor js = (IJavaScriptExecutor)driver;     
     js.ExecuteScript("window.scroll(arguments[0], arguments[1]);", elem.Location.X, elem.Location.Y - heightOfNavbar);
}
票数 1
EN

Stack Overflow用户

发布于 2018-01-16 05:59:50

你可以尝试使用JavaScript,不确定它是否有效,但你可以试一试:

代码语言:javascript
运行
复制
private void ScrollToElement(IWebElement element)
{
    IJavaScriptExecutor js = (IJavaScriptExecutor) driver; 
    js.executeScript("argumenents[0].scrollIntoView(true);", element)
}

我把它从很久以前遇到的一个similar issue改编成了C#。当时我正在用Java工作,这个解决方案对我很有效。希望它能帮助你,或者至少为你指明正确的方向。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48237836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档