Getting the return value of Javascript code in Selenium Getting the return value of Javascript code in Selenium python python

Getting the return value of Javascript code in Selenium


To return a value, simply use the return JavaScript keyword in the string passed to the execute_script() method, e.g.

>>> from selenium import webdriver>>> wd = webdriver.Firefox()>>> wd.get("http://localhost/foo/bar")>>> wd.execute_script("return 5")5>>> wd.execute_script("return true")True>>> wd.execute_script("return {foo: 'bar'}"){u'foo': u'bar'}>>> wd.execute_script("return foobar()")u'eli'


You can return values even if you don't have your snippet of code written as a function like in the below example code, by just adding return var; at the end where var is the variable you want to return.

result = driver.execute_script('''cells = document.querySelectorAll('a');URLs = [];[].forEach.call(cells, function (el) {    URLs.push(el.href)});return URLs''')

result will contain the array that is in URLs this case.