【问题标题】:scroll up the page to the top in selenium在硒中向上滚动页面到顶部
【发布时间】:2016-04-15 12:56:35
【问题描述】:

如何将网页滚动到页面顶部。

我知道将页面滚动到底部是:

window.scrollTo(0,document.body.scrollHeight)

这样就可以将页面滚动到顶部

【问题讨论】:

    标签: selenium selenium-webdriver


    【解决方案1】:

    要滚动到页面顶部,只需滚动到0, 0

    window.scrollTo(0, 0);
    

    或者,作为替代选项,您可以 scroll into viewheader 元素(或顶部的其他元素):

    WebElement element = driver.findElement(By.tagName("header"));
    
    JavascriptExecutor js = (JavascriptExecutor)driver;
    js.executeScript("arguments[0].scrollIntoView();", element); 
    

    【讨论】:

    • 你从哪里得到的窗口实例?对于我得到的第二种方法: 引起:org.openqa.selenium.NoSuchElementException:没有这样的元素:无法找到元素:{“method”:“css selector”,“selector”:“header”}跨度>
    【解决方案2】:

    使用动作类,因为某些 UI 框架不能很好地与 JavaScript scrollTO 配合使用

    actions.sendKeys(keys.Home).build().perform();
    actions.sendKeys(keys.END).build().perform();
    

    【讨论】:

      【解决方案3】:

      这个解决方案也可以正常工作,我已经检查过了:

      ((JavascriptExecutor) driver)
          .executeScript("window.scrollTo(0, -document.body.scrollHeight)");
      

      【讨论】:

        【解决方案4】:

        顶部的简单方法:webDriver.FindElement(By.TagName("body")).SendKeys(Keys.Home); 底部:webDriver.FindElement(By.TagName("body")).SendKeys(Keys.End);

        【讨论】:

          【解决方案5】:

          滚动到页面顶部

          ((JavascriptExecutor) driver).executeScript("window.scrollTo(document.body.scrollHeight, 0)");
          

          滚动到页面末尾

          ((JavascriptExecutor) driver).executeScript("window.scrollTo(0,document.body.scrollHeight)");
          

          【讨论】:

            【解决方案6】:

            是的,你可以尝试如下

            方式一 - 滚动到页面底部

            driver.navigate().to(URL);
            ((JavascriptExecutor) driver)
            .executeScript("window.scrollTo(0, document.body.scrollHeight)");
            

            方式二 - 滚动到页面上的元素

            driver.navigate().to(URL);
            WebElement element = driver.findElement(By.id("id"));
                    ((JavascriptExecutor) driver).executeScript(
                            "arguments[0].scrollIntoView();", element);
            

            方式 3 - 按坐标滚动

             driver.navigate().to(URL);
                ((JavascriptExecutor) driver).executeScript("window.scrollBy(0,500)");
            

            【讨论】:

            • 但我想将页面滚动到顶部。这里就像(方式一 - 滚动到页面底部),我想将页面向上滚动
            猜你喜欢
            • 2020-03-25
            • 1970-01-01
            • 1970-01-01
            • 2021-07-20
            • 2016-10-21
            • 1970-01-01
            • 1970-01-01
            • 2023-02-25
            • 1970-01-01
            相关资源
            最近更新 更多