我正在尝试使用Selenium创建和执行JavaScript函数.我是这样做的:
js_func = """
function blah(a, b, c) {
.
.
.
};
"""
self.selenium.execute_script(js_script)
self.selenium.execute_script("blah", 1,2,3)
Run Code Online (Sandbox Code Playgroud)
我没有从第一个(创建函数)得到任何错误,但第二个给了我:
WebDriverException: Message: u'blah is not defined'
Run Code Online (Sandbox Code Playgroud)
我有效吗?我怎么知道功能是否成功创建?如何查看错误(假设有错误)?
提供的脚本片段将作为匿名函数的主体执行.
实际上,您的代码是:
(function() {
function blah(a, b, c) {
...
}
})();
(function() {
blah(1, 2, 3);
});
Run Code Online (Sandbox Code Playgroud)
并且由于JavaScript的范围规则,blah在匿名函数之外不存在.你必须使它成为一个全局函数:
window.blah = function(a, b, c) {
...
}
Run Code Online (Sandbox Code Playgroud)
或者在同一个函数调用中执行这两个脚本.
| 归档时间: |
|
| 查看次数: |
2635 次 |
| 最近记录: |