0
A
回答
4
我追加到使用要返回的值(.js文件)
document.body.innerHTML += '<div style="display:none;" id="some_id">' + value_to_be_returned + '</div>';
并在java中使用(in .ja VA文件)
String return_value = (String) js.executeScript("return document.getElementById('some_id').innerHTML");
5
您可以只返回在executeJavascript值:
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("return document.title");
-2
如果要执行JavaScript是同步的,则JavaScript的返回值将被分配driver.execute_script()
方法的结果 - 这可能是你所期待的,并遵循least surprise principle :
js_url = driver.execute_script("return window.location.href")
print(js_url)
如果,另一方面,你的JavaScript代码是异步的,然后在回调你可以分配结果window
对象,请等待一些预定义的时间(例如,对于AJAX reguest完成),然后从全局变量的js读取结果:
driver.execute_script("""$.ajax({
url: 'http://httpbin.org/get',
complete: function(xhr, textStatus) {
window._xhr_status = xhr.status;
}
});
""" % asset_url)
time.sleep(5)
js_status = driver.execute_script('return window._xhr_status')
print(js_status)
0
对于异步我用下面的:
driver.executeAsyncScript(“\
var callback = arguments[0]; \
$.ajax(‘someurl’) \
.success(function(data){callbacks(data)});\
“);
相关问题
- 1. Selenium webdriver的Javascript函数返回值
- 2. 如何使用Selenium返回整列?
- 3. 使用Javascript从MongoDB返回值提取。
- 4. 如何从javascript函数返回值
- 5. Javascript,如何从foreach函数返回值
- 6. 如何返回值在JavaScript
- 7. 用Javascript返回值
- 8. 从DT返回值与JavaScript
- 9. Selenium:如何使用javascript从表单域中清除值?
- 10. Selenium - 等到返回的JavaScript脚本值匹配值
- 11. 如何从GM_xmlhttprequest返回值?
- 12. 如何从GUI返回值?
- 13. 如何从addEventListener返回值
- 14. JavaScript返回值
- 15. 从javascript中返回值在javascript中
- 16. 如何从使用gtk回调调用的函数返回值?
- 17. 如何从exe中返回值并使用C#捕获返回的值#
- 18. 如何从postMessage()调用中返回值?
- 19. 在jQuery中使用JavaScript返回值
- 20. 使用jquery/javascript返回未编码值
- 21. 如何使用JavaScript返回元素innerchild?
- 22. Selenium Webdriver不返回Javascript代码
- 23. 如何从回调中返回值?
- 24. JavaScript - 使用selenium-webdriver将内部html返回给变量?
- 25. 如何使用JavaScript显示从RESTful API调用返回的JSON
- 26. 如何在promise中返回值javascript
- 27. 如何使用javascript返回值函数在xsl:value-of中显示?
- 28. 如何在Genexus中使用JavaScript返回值?
- 29. 如何使用返回值在Vaadin中添加JavaScript函数?
- 30. 我如何使用PHP中的JavaScript函数返回的值?
感谢@Jochen,但我在得到一个值在window.addEventListener('click',函数(e){return e},false)上的JS文件;'我想要**事件e **。 –
谢谢@Jochen这帮助。 –