如何使用Webdriver.io?

时间:2017-05-15 15:51:47

标签: selenium selenium-webdriver webdriver selenium-chromedriver

我使用webdriver.io使用节点脚本打开浏览器实例。浏览器打开但忽略了desiredCapabilities对象中定义的一些选项。这是我现在的配置:

const path = require('path');
const webdriver = require('webdriverio');

const INIT_URL = 'http://www.google.ca';

const options = {
  desiredCapabilities: {
    browserName: 'chrome',
    applicationCacheEnabled: false,
    chromeOptions: {
      args: [
        'disable-web-security',
        'allow-running-insecure-content',
        'auto-open-devtools-for-tabs',
        'user-data-dir=/Users/david/Library/Application\ Support/Google/Chrome/Profile\ 2'
      ]
    }
  }
};

const browser = webdriver
  .remote(options)
  .init()
  .url(INIT_URL);

除了user-data-dir之外,所有选项似乎都有效。浏览器实例打开但未使用提供的配置文件。

有没有办法使用Webdriver.io(NodeJS)配置Selenium以选择实际有效的特定浏览器配置文件?

更新

来自@FlorentB。建议我尝试过双引号和双反斜杠,但没有成功:

  • 'user-data-dir="/Users/david/Library/Application\ Support/Google/Chrome/Profile\ 2"'
  • 'user-data-dir=/Users/david/Library/Application\\ Support/Google/Chrome/Profile\\ 2'

但我也注意到,当我看到Selenium打开Chrome实例的可用配置文件时,列表为空:

Empty profile list

但是,当我打开Chrome的正常实例(手动,没有Selenium)时,我确实看到了我的两个可用配置文件:

Normal profile list

1 个答案:

答案 0 :(得分:2)

在我公司的帮助下,我找到了自己问题的解决方案。我必须将属性An error occurred: No X11 DISPLAY variable was set, but this program performed an operation which requires it.user-data-dir合并为:

profile-directory