I am trying to create and execute a JavaScript function with Selenium. I am doing it like this:
js_func = \"\"\"
function blah(a, b, c) {
.
It's just how Selenium executes JavaScript:
The script fragment provided will be executed as the body of an anonymous function.
In effect, your code is:
(function() {
function blah(a, b, c) {
...
}
})();
(function() {
blah(1, 2, 3);
});
And due to JavaScript's scoping rules, blah
doesn't exist outside of that anonymous function. You'll have to make it a global function:
window.blah = function(a, b, c) {
...
}
Or execute both scripts in the same function call.