WebdriverIO:使用multiRemote时无法访问浏览器功能

时间:2019-10-21 22:29:51

标签: selenium selenium-webdriver webdriver-io

我已经按照WebdriverIO网站上的说明,设置了wdio.conf.js以便在测试中使用多个浏览器。 (如果使用多重远程功能,则将功能定义为对象

在我的规格文件中,当我尝试执行某项操作时,例如MyFirefoxBrowser.url('https://myUrl') ...(发生了什么事?)

!注意::当我直接引用browser对象时,将按预期生成Chrome和Firefox实例。

我尝试使用require在我的规范文件中引用wdio.conf.js文件,但是没有用。

规范文件.js):

describe('webdriver.io page', () => {
    it('should have the right title', () => {  

        myFirefoxBrowser.url('https://webdriver.io');
        const title = myFirefoxBrowser.getTitle()
        assert.strictEqual(title, 'WebdriverIO · Next-gen WebDriver test framework for Node.js')
     });
});

功能(在wdio.conf.js中定义):

capabilities: {
    myChromeBrowser: {
        capabilities: {
            browserName1: 'chrome'
        }
    },
    myFirefoxBrowser: {
        capabilities: {
            browserName: 'firefox'
        }
    }
},

错误:

  

ReferenceError:未定义mychromeBrowser

预期结果::仅Firefox浏览器应导航到请求的网址。

2 个答案:

答案 0 :(得分:0)

myChromeBrowser!= mychromeBrowser。检查一下。也不确定您要怎么做。 browser是每个浏览器的对象,如果要确定其类型,可以通过browser.capabilities 你会得到物体

{ acceptInsecureCerts: false,
  browserName: 'chrome',
  browserVersion: '78.0.3904.97',
  chrome:
   { chromedriverVersion:
      '78.0.3904.70 (edb9c9f3de0247fd912a77b7f6cae7447f6d3ad5-refs/branch-heads/3904@{#800})',
     userDataDir: '/tmp/.com.google.Chrome.Ihm6cA' },
  'goog:chromeOptions': { debuggerAddress: 'localhost:45423' },
  networkConnectionEnabled: false,
  pageLoadStrategy: 'normal',
  platformName: 'linux',
  proxy: {},
  setWindowRect: true,
  strictFileInteractability: false,
  timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },
  unhandledPromptBehavior: 'dismiss and notify' }

使用browser

答案 1 :(得分:0)

capabilities应该定义为数组

// wdio.conf.js
exports.config = {
    // ...
    capabilities: [{
        browserName: 'firefox'
    }, {
        browserName: 'chrome',
        // ...
        proxy: {
            proxyType: "manual",
            httpProxy: "corporate.proxy:8080",
            socksUsername: "codeceptjs",
            socksPassword: "secret",
            noProxy: "127.0.0.1,localhost"
        },
        // ...
    }],
    // ...
}