使用Selenium拦截Javascript函数调用

时间:2010-10-14 10:41:25

标签: c# javascript flash selenium selenium-rc

我有一个测试,我必须检查当在网页上选择特定项目时,该项目被加载到同一页面上的flash对象中。这是通过Javascript完成的。我必须检查通过Javascript传递给flash的参数是否正确(即正确的项目被传递给flash)。我现在唯一想象的方法就是拦截这些javascript函数,并以某种方式读取它们的参数。任何人都可以建议如何做到这一点?您也可以建议其他解决方法......

1 个答案:

答案 0 :(得分:2)

假设您有一个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");

我没有测试过这个,但希望你能得到我想要做的主旨。