Кастомное ожидание селена для приложения angular7 - PullRequest
0 голосов
/ 15 апреля 2019

Мы автоматизируем приложение Angular 7 с помощью Selenium Webdriver.Мне нужны пользовательские ожидания, использующие Javascript или JQuery, которые будут ждать отображения страницы и ждать завершения ответа $ http.

Я пробовал явные ожидания, но они не работают, так как элементы загружаютсяна странице, но все еще загружается и пробовал ng Webdriver, но это также не удается.

1 Ответ

0 голосов
/ 15 апреля 2019

Это может быть полезно для вас.Прежде чем получить доступ к любому элементу, проверьте, выполняется ли Jquery / Angular.

  public static boolean isJQueryDone() {
            Object jsResponse = tryJavascript("return jQuery.active;");
            if (jsResponse instanceof Long) {
                return ((Long) jsResponse) == 0;
            } else if (jsResponse instanceof String) {
                String response = (String) jsResponse;
                return (response.startsWith("{\"hCode\"") || response.isEmpty());
            } else {
                return true;
            }
        }

        public static boolean isAngularDone() {
            Object jsResponse = tryJavascript("return window.getAllAngularTestabilities().filter(x=>!x.isStable()).length;");
            if (jsResponse instanceof Long) {
                return ((Long) jsResponse) == 0;
            } else if (jsResponse instanceof String) {
                String response = (String) jsResponse;
                return response.isEmpty();
            } else {
                return true;
            }
        }
        public static synchronized Object tryJavascript(String script, Object... args) {
            try {
                return execJavascript(script, args);
            } catch (Exception ignore) {
                return "";
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...