一尘不染

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

selenium

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

现在的问题是,Chrome浏览器提示我在测试过程中启用Geolocation,而且我不知道如何在运行时单击该小条,因此我急切地寻找一种方法来通过某些选项或触发器启动chromedriver和chrome默认情况下启用此功能。我在这里只能找到如何完全禁用地理位置。

我该如何解决这个问题?


阅读 718

收藏
2020-06-26

共1个答案

一尘不染

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

这就是为什么在我看来,@ Sotomajor关于像使用Firefox一样使用Chrome使用配置文件的答案不起作用。

在我的一项集成测试中,我遇到了同样的问题。但是,因为我不担心真正的地理位置值,所以我要做的就是模拟window.navigator.gelocation

在您的Java测试代码中,请采用此解决方法以避免Chrome geoloc权限信息栏。

chromeDriver.executeScript(“ window.navigator.geolocation.getCurrentPosition = 
    功能(成功){
         var position = {“ coords”:{
                                       “纬度”:“ 555”, 
                                       “经度”:“ 999”
                                     }
                         }; 
         success(position);}“);

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

2020-06-26