我已经按照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浏览器应导航到请求的网址。
答案 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"
},
// ...
}],
// ...
}