Перейти к содержимому

Программирование на Python для тестировщиков
онлайн, начало 18 октября
Логи как инструмент тестировщика
онлайн, начало 21 октября
Тестирование REST API
онлайн, начало 21 октября
Организация автоматизированного тестирования
онлайн, начало 18 октября

BigHooter

Регистрация: 02 июн 2014
Offline Активность: 24 июн 2014 13:00
-----

Мои сообщения

В теме: WebDriver. Как узнать завершение выполнения js кода

24 Июнь 2014 - 12:50

C MathJax оказалось все просто. У него нашелся массивчик в котором он публикует события window.MathJax.Hub.signal.posted, и просто дождался когда он опубликует.

 

Постарому:

selenium.waitForCondition("(typeof window.MathJax === 'undefined') || (window.MathJax.Hub.signal.posted[window.MathJax.Hub.signal.posted.length-1][0]=='End Process')", "240000");

По новому:

driver.manage().timeouts().implicitlyWait(300, TimeUnit.SECONDS);
waitForLoad(driver, "return (typeof MathJax === 'undefined') || (MathJax.Hub.signal.posted[window.MathJax.Hub.signal.posted.length-1][0]=='End Process')");

В теме: WebDriver. Как узнать завершение выполнения js кода

02 Июнь 2014 - 19:27

Ладно давайте не универсальный. 

Есть какой то JS скрипт, который сделан с нормальным API.

И нам нужно определить что он выполнил все преобразования на странице.

 

Для определенности у меня есть визуализация главы книги с использованием MathJax org

В его настройках есть такой обработчик события

MathJax.Hub.Queue(function () {Message("*** MathJax is done ***")}); 

И вот теперь как мне прикрутить эту конструкцию к Selenium.

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

 

Как понимаю, нужно запустить эту конструкцию в браузере, чтоб MathJax ее подхватил (я пытаюсь отпрофилировать уже готовые страницы на сервере). И потом какой то флаг считывать в Selenium.

 

Помогите, плиз...


Яндекс.Метрика
Реклама на портале