我正在尝试使用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'
我在做什么有效吗?如何判断该函数是否成功创建?如何查看错误(假设存在错误)?
这就是Selenium执行JavaScript的方式:
提供的脚本片段将作为匿名函数的主体执行。
实际上,您的代码是:
(function() { function blah(a, b, c) { ... } })(); (function() { blah(1, 2, 3); });
并且由于JavaScript的范围规则,blah该匿名函数之外不存在。您必须使其成为全局函数:
blah
window.blah = function(a, b, c) { ... }
或者在同一函数调用中执行两个脚本。