HashNuke / hound

Elixir library for writing integration tests and browser automation
http://hexdocs.pm/hound
MIT License
1.36k stars 145 forks source link

anonymous functions in execute_script #230

Open mguilmineau opened 5 years ago

mguilmineau commented 5 years ago

Greetings, just so you know I was running (in chromium's latest) execute_script with an anonymous function in it that referenced arguments, as such: execute_script( "const e=arguments[0], i=(function(s){ val = arguments[1] ; ... })(e) ; ...", [ arg0, arg1] ) Turns out that while e is properly defined as taking the value of arg0, once inside the anonymous function arguments is equals to [e] i.e. what was passed to the anonymous function, not [ arg0, arg1] any longer. That's an unfortunate side-effect of having named your arguments "arguments" I suppose. :) My workaround was to define an extra variable taking arg1 as its value, before the anonymous function then invoke that variable from within. But ideally there's no having to worry about that array's value being overwritten at execution time.