Селен / Webdriver отслеживать движение страницы - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть тестовое приложение, которое отображает очень очень большую диаграмму Ганта.Большинство элементов не визуализируются до тех пор, пока не сработает событие прокрутки, и они необходимы (с использованием имен углов, классов и т. Д.).Мне нужно уметь двигаться во всех направлениях и делать утверждения об этих элементах.

Особой проблемой является проверка видимости.У меня есть следующее:

    private Point AssessElementOutOfViewport()
    {
        var workingViewportMovement = new Point();

        // Essentially the top right of our webpage should ALWAYS be 0,0
        var currentViewportWidth = (int) driver.ExecuteJavaScript<long>("return window.innerWidth");
        var currentViewportHeight = (int) driver.ExecuteJavaScript<long>("return window.innerHeight");

        if (element.Location.X > currentViewportWidth | element.Location.X < 0)
        {
            workingViewportMovement.X = element.Location.X - currentViewportWidth;

            if (workingViewportMovement.X < 20 && workingViewportMovement.X > 0)
            {
                workingViewportMovement.X = 20;
            }
        }

        if (element.Location.Y > currentViewportHeight | element.Location.Y < 0)
        {
            workingViewportMovement.Y = element.Location.Y - currentViewportHeight;

            if (workingViewportMovement.Y < 150 && workingViewportMovement.Y > 0)
            {
                workingViewportMovement.Y = 150;
            }
        }

        return workingViewportMovement;
    }


Это просто недостаточно хорошо.Работает только тогда, когда страница находится в состоянии по умолчанию.После того, как я переместил страницу при первой проверке, следующий элемент захочет переместиться на сумму, которая не является жизнеспособной, и после одной целой страницы он переместит страницу на целую страницу, и элемент все равно не будет виден.

Пока что я могу обойтись без вышеизложенного, НО, я стремлюсь не изобретать велосипед.

Это, безусловно, ДОЛЖНО уже иметь дело?

Я тут покопался, документация WebDriver / ChromeDriver / Selecnium и не нашла никаких свойств или методов, которые бы помогали отслеживать «смещение», через которое манипулировали область просмотра с течением времени / с момента загрузки страницы.

Какие альтернативные подходы я должен рассмотреть?

В его нынешнем виде я просто собираюсь прикрепить объект Point к моему завернутому драйверу и сам отследить его ....?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...