Estoy usando Selenium2 para algunas pruebas automatizadas de mi sitio web, y me gustaría poder obtener el valor de retorno de algunos códigos Javascript. Si tengo una función de Javascript foobar()
en mi página web y quiero llamar a eso y obtener el valor de retorno en mi código de Python, ¿a qué puedo llamar para hacer eso?Obteniendo el valor de retorno del código Javascript en Selenium
79
A
Respuesta
132
Para devolver un valor, simplemente use la palabra clave de JavaScript return
en la cadena que se pasó al método execute_script()
, p. Ej.
>>> 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'
0
Puede devolver valores, incluso si usted no tiene su cortó del código escrito como una función como en el código de ejemplo a continuación, con sólo añadir return var;
en el extremo donde var es la variable que desea 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 URLs
este caso.
Cuestiones relacionadas
- 1. ExternalInterface.call() no obteniendo el valor de retorno
- 2. Obteniendo el valor "depurable" de androidManifest del código?
- 3. valor de retorno javascript UIWebView
- 4. Utilizando el valor de retorno de un bloque en JavaScript
- 5. valor de retorno del sistema() en C
- 6. Obtener el valor de retorno del procedimiento almacenado en ADO.NET
- 7. Obteniendo el número del repositorio de subversión en el código
- 8. valor de retorno de la función anidada en Javascript
- 9. document.getElementById() valor de retorno definido en cromo
- 10. doble exclamación en un valor de retorno en javascript
- 11. Comprensión de la optimización del valor de retorno y el retorno de los temporales - C++
- 12. MSDN sobre el valor de retorno predeterminado del procedimiento almacenado
- 13. ¿Cómo deducir el tipo de valor de retorno del funtor?
- 14. ¿Cómo inspeccionar el valor de retorno de la función de JavaScript en el depurador de Chrome?
- 15. Obteniendo el valor máximo del campo en solr.
- 16. Jquery valor de retorno
- 17. obteniendo el tamaño de archivo en javascript
- 18. OSX: Cómo comprobar el valor de retorno del comando launchctl
- 19. "sys.getrefcount()" valor de retorno
- 20. Obtener el valor de retorno de JOptionPane
- 21. Ventana emergente valor de retorno
- 22. ¿Por qué no funciona una declaración de retorno de Javascript cuando el valor de retorno está en una nueva línea?
- 23. Obteniendo el valor de retorno de una función boost :: threaded member?
- 24. obteniendo el valor seleccionado del menú desplegable .NET usando JQuery
- 25. predeterminado valor de retorno del método en Java interconecta
- 26. valor de retorno de la sobrecarga del operador en C++
- 27. SQL - Obteniendo el valor actualizado
- 28. JavaScript valor de retorno asíncrono/asignación con jQuery
- 29. Examinar valor de retorno en función del BGF
- 30. Obtener el valor de retorno de fputcsv
si la variable no está definida por javascript, ¿cuál sería el valor de retorno? ¿Lanza una excepción o simplemente una cadena vacía? – Alex
si la variable no está definida, devuelve 'None' – dbJones
nota rápida para esos newbs,' return_value = wd.execute_script ("return {foo: 'bar'}") 'almacenaría el valor devuelto para usarlo más adelante en su programa . – ntk4