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

Школа Тест-Аналитика
онлайн, начало 23 сентября
Практикум по тест-дизайну 2.0
онлайн, начало 25 сентября
Docker: инструменты тестировщика
онлайн, начало 24 сентября
Тестирование REST API
онлайн, начало 21 сентября

Публикации BigHooter

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


#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.

 

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





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