如何使用硒C#使div底部

时间:2019-06-25 09:52:05

标签: c# selenium

我需要进入div的底部,我要说的是评论 https://www.google.com/maps/place/Tea+O+Clock/@33.7229108,73.0603228,17z/data=!4m7!3m6!1s0x38dfbfa073cc9223:0x49c9b3b52b308f29!8m2!3d33.7229108!4d73.0625115!9m1!1b1?hl=en

在执行此操作时,我无法向下滚动滚动条,因为我需要先加载所有评论,然后才能将其放入数据库

IJavaScriptExecutor je = (IJavaScriptExecutor)Constants.driver;
je.ExecuteScript("arguments[0].scrollIntoView(false);", scrollAbleElement);

我不想使用scrollIntoView,因为在底部没有可以让scrollIntoView的任何div

-不起作用

 Actions actions = new Actions(Constants.driver);

actions.ClickAndHold(scrollAbleElement).MoveByOffset(0, 170).Perform();

-效果不佳

js.ExecuteScript("document.getElementsByClassName('widget-pane-content scrollable-y').scrollTop =  document.getElementsByClassName('widget-pane-content scrollable-y').scrollHeight");

尝试了我可以在互联网上找到的所有可能的解决方案

 Actions actions = new Actions(Constants.driver);

actions.ClickAndHold(scrollAbleElement).MoveByOffset(0, 170).Perform();

我只需要使div中的滚动条自动上下移动,以便它可以加载所有评论,然后就可以轻松获得它们。

1 个答案:

答案 0 :(得分:0)

您可以使用此...只需调用它,然后添加要向下滚动的次数。

    public static void ScrollPage(int counter)
    {
        const string script =
            @"window.scrollTo(0,Math.max(document.documentElement.scrollHeight,document.body.scrollHeight,document.documentElement.clientHeight));";


        int count = 0;

        while (count!=counter)
        {
            IJavaScriptExecutor js = _webDriver as IJavaScriptExecutor;
            js?.ExecuteScript(script);

            count++;
        }
    }