Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Selenium将元素滚动到视图中(不在导航栏下)_C#_Selenium_Scroll_Navbar - Fatal编程技术网

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

C# 使用Selenium将元素滚动到视图中(不在导航栏下),c#,selenium,scroll,navbar,C#,Selenium,Scroll,Navbar,除非元素可见,否则Selenium click似乎不起作用。所以我想在单击之前查看元素。 Selenium中有一个焦点方法,但它似乎没有滚动视图。 我尝试使用Selenium将元素滚动到视图中,但有时元素仍在导航栏下。 有没有办法滚动直到元素变得可见,selenium可以点击它?您可以尝试使用JavaScript,但不确定它是否可以工作,但您可以尝试一下: private void ScrollToElement(IWebElement element) { IJavaScriptExe

除非元素可见,否则Selenium click似乎不起作用。所以我想在单击之前查看元素。 Selenium中有一个焦点方法,但它似乎没有滚动视图。 我尝试使用Selenium将元素滚动到视图中,但有时元素仍在导航栏下。
有没有办法滚动直到元素变得可见,selenium可以点击它?

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

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

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

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

你曾尝试过什么来达到你想要的结果?关于你的问题,你的研究表明了什么?你能提供你尝试的代码吗,这可能有助于改进您的问题。