加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 将增长的页面滚动到底部

发布时间:2020-12-16 01:55:56 所属栏目:百科 来源:网络整理
导读:我有一个页面.当我手动滚动它,它会增长然后我可以反复滚动它直到滚动到达底部(一个很好的例子是Facebook时间线页面). 我试着写: static IWebDriver driver = new ChromeDriver(@"C:seleniumnet40");IJavaScriptExecutor js = driver as IJavaScriptExecut
我有一个页面.当我手动滚动它,它会增长然后我可以反复滚动它直到滚动到达底部(一个很好的例子是Facebook时间线页面).

我试着写:

static IWebDriver driver = new ChromeDriver(@"C:seleniumnet40");
IJavaScriptExecutor js = driver as IJavaScriptExecutor;

然后我进入了一个页面并做了:

js.ExecuteScript("window.scroll(0,document.height)");

但我可以滚动更多.

即使页面在增长,如何才能滚动到底部?

任何帮助赞赏!

解决方法

window.scroll(0,document.height)将滚动到已知的可滚动区域.问题是当您到达页面底部时会下载更多数据.因此,可滚动区域被更改.您需要根据需要滚动多次.

例如,使用此脚本

var timeId = setInterval( function() {
    if(window.scrollY!==document.body.scrollHeight)
        window.scrollTo(0,document.body.scrollHeight);
    else
        clearInterval(timeId);
},500);

编辑:

在某些页面上,window.scrollY将永远不会等于document.body.scrollHeight,因此永远不会清除setIntervanl:这将阻止您转到顶部.

var timeId = setInterval( function() {
    if(window.scrollY<(document.body.scrollHeight-window.screen.availHeight))
        window.scrollTo(0,document.body.scrollHeight);
    else
    {
        clearInterval(timeId);
        window.scrollTo(0,0);
    }
},500);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读