Как получить нижнюю часть div, используя seleinum c # - PullRequest
0 голосов
/ 25 июня 2019

Мне нужно перейти к нижней части 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, так как в нижней части нет ни одного div, который я мог бы scrollIntoView

- Не работает

 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 голосов
/ 25 июня 2019

Вы можете использовать это ... Просто позвоните и добавьте, сколько раз вы хотите прокрутить вниз.

    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++;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...