如何使用Selenium和Python从Java脚本获取变量值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Selenium和Python从Java脚本获取变量值相关的知识,希望对你有一定的参考价值。
使用Selenium,以下是我在Python上运行的代码,通过使用导航器网络api获取地理坐标:
coordinates = driver.execute_script(
" return () => { " +
" var savedCoordinates; " +
" " +
" navigator.geolocation.getCurrentPosition( " +
" (pos) => savedCoordinates = pos.coords, " +
" error, " +
" options); " +
" " +
" let options = { " +
" enableHighAccuracy: true, " +
" timeout: 5000, " +
" maximumAge: 0 " +
" }; " +
" " +
" function error(err) { " +
" console.warn(`ERROR(${err.code}): ${err.message}`); " +
" }; " +
" " +
" return savedCoordinates; " +
" } " )
print(coordinates)
预期输出:{latitude: XXX.XXX, longitude XX.XXXX}
实际输出:{}
有人可以帮我弄清楚如何使用此方法获取地理坐标吗?
return () => { }
的情况下工作 coordinates = driver.execute_script(
" var savedCoordinates; " +
" " +
" navigator.geolocation.getCurrentPosition( " +
" (pos) => savedCoordinates = pos.coords, " +
" error, " +
" options); " +
" " +
" let options = { " +
" enableHighAccuracy: true, " +
" timeout: 5000, " +
" maximumAge: 0 " +
" }; " +
" " +
" function error(err) { " +
" console.warn(`ERROR(${err.code}): ${err.message}`); " +
" }; " +
" " +
" return savedCoordinates; " )
print(coordinates)
就我而言,此() => {}
仅定义函数,但不运行它,因此它返回此函数,而不是函数的结果。您可能需要()
才能运行它
return (() => {...code...})()
以上是关于如何使用Selenium和Python从Java脚本获取变量值的主要内容,如果未能解决你的问题,请参考以下文章
python+selenium自动化软件测试(第5章):Selenium Gird
如何通过 Selenium 和 Python 从 html 标签跨度获取文本
如何使用 Selenium 和 Python 查找从 covid 中恢复的人数的类路径
如何使用 Selenium Webdriver 和 Python 从这个非选择下拉菜单中选择这个元素