Selenium inject Javascript directly into a page in order to set a variable for the page



  • I am attempting to inject Javascript directly into a page in order to set a variable for the page. I am still rather new to the IDE and I have seen the runScript function and I think it does what I need but it's not working at all. What I have currently: runScript javascript{var selectedComponentIDs = [x,y,z];} selectedComponentIDs is the variable in the source code of the page that I need to change. Thanks for any help offered. I really need to be able to do this with the IDE so 'use the Web Driver' will not be a suitable answer. It must be with the IDE if it's at all possible.



  • First: You need to remove the javascript{} part. The runScript option just accepts plain Javascript, no need for the extra syntax. Here is an example usage of the runScript (as seen in the Selenium IDE source tab): <tr> <td>open</td> <td>http://www.google.com</td> <td></td> </tr> <tr> <td>runScript</td> <td>document.getElementById('gbqfq').value='test'</td> <td></td> </tr> Just ran this on my Firefox Selenium IDE and it works, please verify that this indeed works. Its should fill in "test" in the google search box. This should mean you can execute JavaScript from the IDE. Second: I think you need to be able to access the variable you want to update/set. This can be hard if the IDE cannot acces its scope directly. Maybe you or the developers can add a Global function to the page so you can call it with "functionName();" also see https://stackoverflow.com/questions/9354191/calling-custom-functions-from-firebug-console for more idea's on calling functions from the browser console (or the runScript command, which is comparable) You should be able to practise/test run the commands from the Firefox console before you add them to your Selenium scripts, since this can be hard to debug from the IDE.



Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2