javascript python selenium-webdriver

Obteniendo el valor de retorno del código Javascript en Selenio



python selenium-webdriver (2)

Para devolver un valor, simplemente use la palabra clave de return JavaScript en la cadena que se pasa al método execute_script() , por ejemplo

>>> 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''

Estoy usando Selenium2 para algunas pruebas automáticas de mi sitio web, y me gustaría poder obtener el valor de retorno de algunos códigos JavaScript. Si tengo una función foobar() Javascript en mi página web y quiero llamarla y obtener el valor devuelto en mi código Python, ¿a qué puedo llamar para hacer eso?


Puede devolver valores incluso si no tiene su código cortado como una función como en el siguiente código de ejemplo, simplemente agregando return var; al final donde var es la variable que quieres devolver.

result = driver.execute_script(''''''cells = document.querySelectorAll(''a''); URLs = [] console.log(cells); [].forEach.call(cells, function (el) { if(el.text.indexOf("download") !== -1){ //el.click(); console.log(el.href) //window.open(el.href, ''_blank''); URLs.push(el.href) } }); return URLs'''''')

result contendrá la matriz que está en las URLs en este caso.