我需要使用python脚本自动在chrome中进行地理定位。我得伪造纬度和经度。我在stackoverflow中跟踪了一些链接,但它们给出了错误。chromeDriver.executeScript("window.navigator.geolocation.getCurrentPosition=function(success){var position ={“坐标”:{“纬度”:"555",“经度”:“999”}};success(位置);}“);
有没有其他方法可以改变位置?
发布于 2015-08-04 15:19:25
您必须在字符串内转义双引号,请尝试使用以下代码:
driver.execute_script("window.navigator.geolocation.getCurrentPosition=function(success){"+
"var position = {\"coords\" : {\"latitude\": \"555\",\"longitude\": \"999\"}};"+
"success(position);}");
print(driver.execute_script("var positionStr=\"\";"+
"window.navigator.geolocation.getCurrentPosition(function(pos){positionStr=pos.coords.latitude+\":\"+pos.coords.longitude});"+
"return positionStr;"))发布于 2020-02-20 20:35:34
它现在实际上可以通过使用Chrome Devtools协议(Cdp)进行编程:
params = {
"latitude": 50.1109,
"longitude": 8.6821,
"accuracy": 100
}
self.driver = webdriver.Chrome()
self.driver.execute_cdp_cmd("Page.setGeolocationOverride", params)
self.driver.get('https://www.google.com/maps')发布于 2020-05-26 08:10:59
在Selenium 3.141和ChromeDriver 83.0中使用Python
这是我找到的工作方法:
params = {
"latitude": 34.0207305,
"longitude": -118.6919153,
"accuracy": 100
}
driver.execute_cdp_cmd("Emulation.clearGeolocationOverride", params)https://stackoverflow.com/questions/31755633
复制相似问题