Phantomjs: Нажмите «Готово», но соответствующее действие никогда не выполняется на phantomjs. Работает с хромом.

Созданный на 28 июн. 2016  ·  3Комментарии  ·  Источник: ariya/phantomjs

Проблема:

Кнопка выбрана правильно с использованием селектора CSS, а затем по ней выполняется щелчок. Событие помечается как выполненное, как видно в журналах селена, однако в случае успеха должна быть отображена новая страница, чего не происходит.
Тот же фрагмент кода работает в хроме.

Среда:

Версия WDIO: v4.0.9
Узел: 6.2.0
Тестер WDIO
Синхронный тест.
селен-сервер-автономный-2.53.0.jar
bhuvneshchaudhary @ bhuviMac : ambari-selenium $ ./node_modules/phantomjs/bin/phantomjs --version
2.1.1

Подробности

      CommonElements.clickNext();
      browser.saveScreenshot('test1.jpg');
      browser.pause(5000);
      CommonElements.clickConfirmationOk();
      browser.pause(5000);
      // On Page 3
      browser.saveScreenshot('test.jpg');
      CommonElements.clickComplete();

В приведенном выше фрагменте кода
clickNext () открывает всплывающее окно с двумя кнопками «Отмена» и «ОК».
clickConfirmationOk () должен нажать кнопку ОК и перейти на следующую страницу.
clickComplete () отмечает завершение на новой странице.

Тем не менее, согласно журналам, clickConfirmationOk () проходит успешно и переходит к clickComplete (). Однако он продолжает ждать, пока элемент существует, но он никогда не появляется, так как на самом деле он все еще находится в всплывающем окне, которое показывает Ok и Cancel.

Селектор CSS, используемый для идентификации кнопки, является правильным, что подтверждается getHTML и другими инструментами выбора CSS в Интернете.

Фрагмент кода

    clickConfirmationOk: {
        value: function () {
            var okSelector = '.modal-footer .btn.btn-success';
            browser.waitForExist(okSelector);
            console.log(browser.getHTML(okSelector));
            browser.waitForEnabled(okSelector, 100000);
            browser.click(okSelector);
        }
    },
    clickComplete: {
        value: function () {
            var completeSelector = '#common-progress-page .btn.btn-success.pull-right';
            browser.waitForExist(completeSelector);
            console.log(browser.isEnabled(completeSelector));
            browser.waitForEnabled(completeSelector, 900000);
            browser.click(completeSelector);
        }
    }

Журналы

Журналы Selenium https://gist.github.com/bhuvnesh2703/aec82bea06debf92f9a4f6e4da93c2ea :
Вывод результатов теста: https://gist.github.com/bhuvnesh2703/076af36f5931c8fdae4a81db612bf4b7

Самый полезный комментарий

У меня тоже есть аналогичная проблема, но с выпадающими меню начальной загрузки. Я могу открыть раскрывающееся меню, но если я попытаюсь click элемент в раскрывающемся меню, меню закрывается, но обработчик кликов не запускается.

Все 3 Комментарий

@ bhuvnesh2703 это случается с вами каждый раз или только иногда? Я наблюдаю аналогичную проблему, когда мы используем find('#element').click а иногда тесты терпят неудачу. Однако использование find().trigger('click') похоже, работает.

Мне интересно, такая же проблема или нет и как собрать больше информации.

У меня тоже есть аналогичная проблема, но с выпадающими меню начальной загрузки. Я могу открыть раскрывающееся меню, но если я попытаюсь click элемент в раскрывающемся меню, меню закрывается, но обработчик кликов не запускается.

Из-за наших очень ограниченных возможностей обслуживания мы должны уделять приоритетное внимание развитию других задач. Поэтому проблема будет автоматически закрыта (подробнее см. # 15395). В будущем, если мы увидим необходимость снова заняться этим вопросом, то он будет снова открыт. Спасибо Вам за Ваш вклад!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги