如何在chromedriver中启用地理定位支持?

Tho*_*ler 11 selenium geolocation chromium

我需要使用Selenium测试JS地理定位功能,我正在使用chromedriver在最新的Chrome上运行测试.

现在问题是Chrome在测试期间提示我启用Geolocation,而且我不知道如何在运行时点击那个小条,所以我拼命寻找一种方法来启动chromedriver和chrome以及一些选项或触发器默认启用此功能.然而,我在这里找到的只是如何完全禁用地理位置.

我该如何解决这个问题?

red*_*hka 15

chromedriver wiki的已知问题部分,他们说您无法指定自定义配置文件

这就是为什么在我看来@Sotomajor回答关于使用Chrome的配置文件与使用firefox一样无法解决.

在我的一个集成测试中,我遇到了同样的问题.但是因为我没有打扰真正的地理位置值,我所要做的就是模拟window.navigator.gelocation

在您的java测试代码中放置此解决方法以避免Chrome geoloc权限信息栏.

chromeDriver.executeScript("window.navigator.geolocation.getCurrentPosition = 
    function(success){
         var position = {"coords" : {
                                       "latitude": "555", 
                                       "longitude": "999"
                                     }
                         }; 
         success(position);}");

这里的纬度(555)和经度(999)值只是测试值