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

Публикации BigHooter

2 публикаций создано BigHooter (учитываются публикации только с 29 марта 2023)


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

Отправлено автор: BigHooter 24 июня 2014 - 12:50 в Selenium - Functional Testing

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')");



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

Отправлено автор: BigHooter 02 июня 2014 - 19:27 в Selenium - Functional Testing

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

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

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

 

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

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

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

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

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

 

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

 

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