Reading JavaScript variables using Selenium WebDriver

All you have to do is:

Object val = js.executeScript("return returnFoo();");

That will give you what you are looking for.


No JavaScript functions need be defined. Nor is alert() needed.

Object result = js.executeScript("return globalVar");

For Python:

result = driver.execute_script("return globalVar")

In Ruby you can use page.execute_script to evaluate a JavaScript variable (if it is accessable from the scope of the web browser). It looks like there is a similar method in Java here.

Edit: This might be a use case that is more suited to a JavaScript unit testing framework such as Jasmine.