Webdriverio / chimpjs - 允许使用Gelocation启动Google Chrome

时间:2016-05-23 21:46:10

标签: selenium-chromedriver webdriver-io chimp.js

我正在编写一个严重依赖于地理位置的Web应用程序。我正在使用chimpjs(黄瓜,webdriverio,chai的组合)来做我的BDD。我想推出允许地理定位的谷歌浏览器。我想我必须这样做,因为我无法点击chrome中的“允许”按钮以允许地理定位。

我的黄瓜目录中有一个chimp.js配置文件。以下是其内容:

module.exports = {
  webdriverio: {
    desiredCapabilities: {
      chromeOptions: {
        deviceName: 'Google Nexus 5'
      }
    }
  },
  browser: 'chrome',
  watch: false,
  path: './features',
  chai: true,
  screenshotsPath: '.screenshots'
};

我知道:

  • chrome使用可能在运行时提供的配置文件信息
  • 有一个选项' geolocation'必须设置为1
  • 其他一些相关的嵌套是' prefs'和' default_content_setting_values',我从挖掘我的Chrome首选项中了解到的

我无法弄清楚其中哪些需要传递给chromeOptions,哪些需要嵌套在哪里。

我确信我不能成为唯一需要使用webdriver启动chrome并启用地理位置的人。

2 个答案:

答案 0 :(得分:1)

您可以使用chromeOptionsprofile.default_content_setting_values.geolocation中进行配置。

chromeOptions: {
  deviceName: 'Google Nexus 5'
  prefs: {
    "profile.default_content_setting_values.geolocation": 1,
  }
},

答案 1 :(得分:0)

这个问题与此问题重复:How do I enable geolocation support in chromedriver for Selenium?

我已将答案翻译成WebdriverIO语法:

browser.execute(function() {
  window.navigator.geolocation.getCurrentPosition = function(success) {
    var position = { coords : { latitude: "40.748440", longitude: "-73.984559" } }; 
    success(position);
  }
});