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

时间:2018-01-13 07:28:32

标签: c# selenium scroll navbar

除非元素可见,否则硒点击似乎不起作用。所以我想在点击前带上元素。 Selenium中有一个焦点方法,但它似乎不会滚动视图。 我尝试使用Selenium将Scroll Element Amith solution添加到View中,但有时候元素仍保留在navbar下。 有什么方法可以滚动直到元素变得可观察并且selenium可以点击它吗?

2 个答案:

答案 0 :(得分:0)

您可以尝试使用JavaScript,但不确定它是否可行,但您可以尝试一下:

private void ScrollToElement(IWebElement element)
{
    IJavaScriptExecutor js = (IJavaScriptExecutor) driver; 
    js.executeScript("argumenents[0].scrollIntoView(true);", element)
}

我从很久以前遇到的similar issue改编了C#。当时我在Java工作,这个解决方案对我有用。希望它可以帮助您或至少指出您正确的方向。

答案 1 :(得分:0)

我使用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);
}