如何设置我的经纬度,以便在 Google Chrome 浏览器中调试 Geolocation API?

问题描述 投票:14回答:6

对于我的开发系统,我希望能够在Chrome浏览器中设置Geolocation(Lat,Long),这样当我进行测试时,浏览器会认为我在X地点,而我真的可能在Y地点。

有谁知道如何强制Google Chrome使用我提供的Lat和Long作为位置?

javascript google-chrome geolocation
6个回答
12
投票

如果你说的是Geolocation API,你可以覆盖这个函数。

navigator.geolocation.getCurrentPosition = function(success, failure) { 
    success({ coords: { 
        latitude: 30, 
        longitude: -105,

    }, timestamp: Date.now() }); 
} 

所以当一个库调用到 navigator.geolocation.getCurrentPosition 函数,你指定的坐标将被返回。


13
投票

在今天的Chrome浏览器(42版本)中,打开开发者工具,点击 "切换设备图标",然后在 "模拟 "抽屉中选择 "传感器"。 在那里,你可以模拟地理位置坐标,甚至可以 "模拟未知位置"。

enter image description here


6
投票

回答的有点晚,但在Chrome浏览器中,你可以打开开发者工具(F12或Ctrl + Shift + I)。在右下方打开 "设置 "档,切换到 "覆盖 "选项卡。有一个标有 "Override Geolocation "的复选框。勾选此框,并输入任何你想要的网站认为你在的地理位置。

如果我解释得不够清楚,这里有一篇好文章,里面有截图和其他内容。http:/www.labnol.orginternetgeo-location27878


5
投票

现在您可以使用 手动地理定位 chrome扩展来手动设置你的位置。


0
投票

我不知道如何在Chrome浏览器中做到这一点,但你可以在Firefox中做到这一点。这篇博客文章 会告诉你如何做。


0
投票

如果你正在寻找一种自动化的方式来完成这个任务 (例如在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, )

© www.soinside.com 2019 - 2024. All rights reserved.