滚动条不起作用-Selenium Webdriver

时间:2018-08-15 20:15:42

标签: c# selenium selenium-webdriver

enter image description here

所附的是我要移动的滚动条的图片。

我已经有一个无法使用的方法。你能告诉我怎么了吗?

    public static void ScrollPageToEnd(this IWebDriver Driver)
    {
        var maxScrollY = Driver.Scripts().ExecuteScript("return document.documentElement.scrollHeight;");
        Driver.Scripts().ExecuteScript("window.scrollTo(0," + maxScrollY + ")");        

    }

4 个答案:

答案 0 :(得分:0)

var maxScrollY可能不是字符串,(我记得的ExecuteScript返回object)。尝试使用ExecuteScript将对象string maxScrollY = Driver.Scripts().ExecuteScript("return document.documentElement.scrollHeight;").ToString()保存到字符串中。

此外,请通过调试检查对象的值,并查看window.scrollTo(0," + maxScrollY + ")等于什么。

答案 1 :(得分:0)

使用scrollIntoView界面的JavascriptExecutor功能滚动到图像所在的位置。

WebElement element = driver.findElement("locator of the image")
JavascriptExector js = (JavascriptExecutor)driver;
js.executeScript("argument[0].scrollIntoView");",element)

我们可以使用方法Scroll(x,y)滚动到特定位置

答案 2 :(得分:0)

它对我有用:

((IJavaScriptExecutor)Driver).ExecuteScript("window.scrollTo(0, document.body.scrollHeight)");

我将它用作函数来简化操作

public void ScrollToEndOfThePage()
        {
            ((IJavaScriptExecutor)Driver).ExecuteScript("window.scrollTo(0, document.body.scrollHeight)");
        }

答案 3 :(得分:0)

如果任何JS脚本不能帮助您滚动,请尝试MoveToElement吗?

IWebElement element = driver.FindElement(By.Id("yourLookingId"));
new Actions(driver).MoveToElement(element).Perform(); 

我正在带有滚动条的复杂Web应用程序中使用它,并且效果很好。