对于我的开发系统,我希望能够在Chrome浏览器中设置Geolocation(Lat,Long),这样当我进行测试时,浏览器会认为我在X地点,而我真的可能在Y地点。
有谁知道如何强制Google Chrome使用我提供的Lat和Long作为位置?
如果你说的是Geolocation API,你可以覆盖这个函数。
navigator.geolocation.getCurrentPosition = function(success, failure) {
success({ coords: {
latitude: 30,
longitude: -105,
}, timestamp: Date.now() });
}
所以当一个库调用到 navigator.geolocation.getCurrentPosition
函数,你指定的坐标将被返回。
在今天的Chrome浏览器(42版本)中,打开开发者工具,点击 "切换设备图标",然后在 "模拟 "抽屉中选择 "传感器"。 在那里,你可以模拟地理位置坐标,甚至可以 "模拟未知位置"。
回答的有点晚,但在Chrome浏览器中,你可以打开开发者工具(F12或Ctrl + Shift + I)。在右下方打开 "设置 "档,切换到 "覆盖 "选项卡。有一个标有 "Override Geolocation "的复选框。勾选此框,并输入任何你想要的网站认为你在的地理位置。
如果我解释得不够清楚,这里有一篇好文章,里面有截图和其他内容。http:/www.labnol.orginternetgeo-location27878
现在您可以使用 手动地理定位 chrome扩展来手动设置你的位置。
我不知道如何在Chrome浏览器中做到这一点,但你可以在Firefox中做到这一点。这篇博客文章 会告诉你如何做。
如果你正在寻找一种自动化的方式来完成这个任务 (例如在Python中的Selenium),这个来自于另一个问题的答案(在无头浏览器中设置传感器(位置)工作。
# Override selenium geolocation
location_key = "Emulation.setGeolocationOverride"
location_details = {
"latitude": 34.0522342,
"longitude": -118.2436849,
"accuracy": 100
}
driver.execute_cdp_cmd(location_key, location_details, )