使用Selenium创建和执行Javascript函数

时间:2013-10-06 19:48:12

标签: python selenium

我正在尝试使用Selenium创建和执行JavaScript函数。我是这样做的:

js_func = """
     function blah(a, b, c) {
        .
        .
        .
};
"""
self.selenium.execute_script(js_script)
self.selenium.execute_script("blah", 1,2,3)

我没有从第一个(创建函数)中得到任何错误,但第二个错误给了我:

WebDriverException: Message: u'blah is not defined'

我正在做的有效吗?我怎么知道功能是否成功创建?如何查看错误(假设有错误)?

1 个答案:

答案 0 :(得分:8)

这就是Selenium executes JavaScript

的方式
  

提供的脚本片段将作为匿名函数的主体执行。

实际上,您的代码是:

(function() {
    function blah(a, b, c) {
        ...
    }
})();

(function() {
    blah(1, 2, 3);
});

由于JavaScript的范围规则,blah在匿名函数之外不存在。你必须使它成为一个全局函数:

window.blah = function(a, b, c) {
    ...
}

或者在同一个函数调用中执行这两个脚本。