Protractor:无法在测试中创建新的浏览器实例



我正在尝试视频通话,我需要两个浏览器来模仿两个不同的用户。因此,我试图在测试之间创建一个新的浏览器实例。我正在使用以下代码创建一个新的浏览器实例:

const config = {
browserName: 'chrome',
platformName: 'windows 10',
'acceptInsecureCerts': true,
'chromeOptions': {
'args': [ "--use-fake-device-for-media-stream", "--use-fake-ui-for-media-stream", "--ignore-certificate-errors"]
},
};
const driver: WebDriver = new protractor.Builder().withCapabilities(config).build();
newBrowser = new protractor.ProtractorBrowser(driver);
await newBrowser.driver.get('https://google.com');

当我运行代码时,在的最后一行出现以下错误

- Failed: Cannot read property 'onPageLoad' of undefined

我有什么东西不见了吗?

提前感谢您的帮助!

查看了这个库之后(https://www.npmjs.com/package/protractor-parallel-instances)和量角器的源代码我现在终于可以创建任何浏览器实例了,只要我有网络驱动程序和必要的设备连接或处于可访问状态。我使用以下功能创建了一个浏览器实例

const config = {
browserName: 'chrome',
platformName: 'windows 10',
'acceptInsecureCerts': true,
'chromeOptions': {
'args': [ "--use-fake-device-for-media-stream", "--use-fake-ui-for-media-stream", "--ignore-certificate-errors"]
},
};    
async createNewBrowserSession(capabilities: any): Promise<ProtractorBrowser>{
const conf = new ConfigParser();
const config = conf.getConfig();
config.capabilities = capabilities;
const ptorRunner = new ProtractorRunner.Runner(config);
const newBrowser = await ptorRunner.createBrowser(config.plugins_);
return newBrowser as ProtractorBrowser;
}
newBrowser = await this.createNewBrowserSession(capabilities);
await newBrowser.get('https://google.com');

这将使用运行量角器的机器可用的网络驱动程序生成浏览器实例。如果你想使用量角器启动的硒服务器,你需要对进行更多的更改

在量角器.conf.js中,设置

directConnect: false

并将上述代码更新为以下代码:

const config = {
browserName: 'chrome',
platformName: 'windows 10',
'acceptInsecureCerts': true,
'chromeOptions': {
'args': [ "--use-fake-device-for-media-stream", "--use-fake-ui-for-media-stream", "--ignore-certificate-errors"]
},
};    
async createNewBrowserSession(capabilities: any): Promise<ProtractorBrowser>{
const conf = new ConfigParser();
const config = conf.getConfig();
config.capabilities = capabilities;
const ptorRunner = new ProtractorRunner.Runner(config);
const newBrowser = await ptorRunner.createBrowser(config.plugins_);
return newBrowser as ProtractorBrowser;
}
await browser.getProcessedConfig().then((obj) => {
capabilities.seleniumAddress = obj.seleniumAddress;
});
newBrowser = await this.createNewBrowserSession(capabilities);
await newBrowser.get('https://google.com');

最新更新