Перехват вызова функции Javascript с помощью Selenium - PullRequest
2 голосов
/ 14 октября 2010

У меня есть тест, в котором я должен проверить, что при выборе определенного элемента на веб-странице он загружается во флэш-объект на той же странице. Это делается с помощью Javascript. Я должен проверить, верны ли параметры, передаваемые во флэш-память Javascript (т. Е. Нужный элемент передается во флэш-память). Единственный способ, который я могу себе представить, это перехватить эти функции JavaScript и каким-то образом прочитать их параметры. Кто-нибудь может подсказать, как это сделать? Вы можете также предложить другие обходные пути ...

1 Ответ

2 голосов
/ 14 октября 2010

Предполагая, что у вас есть объект JavaScript, в данном случае называемый Foobar, который выполняет вызов вашего Flash-приложения, вы можете сделать что-то подобное.

selenium.RunScript(@"var foo = new Foobar();
                   foo.oldBlah = foo.blah;
                   foo.blah = function(){
                      // run some code to do the checks maybe putting into a global Javascript variable
                      foo.oldBlah();
                   };");
selenium.GetEval("var win = this.browserbot.getUserWindow(); return win.globalVarCreatedAbove");

Я не проверял это, но, надеюсь, вы понимаете суть того, что я пытаюсь сделать.

...