我有一个用于应用程序的Protractor测试套件,该套件使用自定义协议处理程序将消息传递出iOS Web视图。
使用量角器测试时,如何防止自定义window.location = "app://doThing";
消息破坏我的测试?它显示"打开xdg-open?"弹出窗口并没有继续进行测试。
我的量角器配置如下所示:
exports.config = {
...,
multiCapabilities: [ {
browserName: 'chrome',
chromeOptions: {
args: [ '--lang=en', '--window-size=1024x768' ]
},
specs: 'test-*.js',
} ]
};
答案 0 :(得分:0)
我通过在chromeOptions块中设置首选项,在Chrome 60中实现了这一点。
exports.config = {
...,
multiCapabilities: [ {
browserName: 'chrome',
chromeOptions: {
args: [ '--lang=en', '--window-size=1024x768' ],
// Replace "app" with your app's custom scheme.
prefs: {
protocol_handler: {
excluded_schemes: {
"app": true
}
}
},
},
specs: 'test-*.js',
} ]
};
在Chrome 60之前,我为Chrome浏览器强制执行了个人资料文件夹。你可以通过一个名为" / chrome-profile"的文件夹来做到这一点。例如,在Chrome docker容器中添加一个名为"默认状态"的文件。具有以下内容:
{
"protocol_handler": {
"excluded_schemes": {
"app": true
}
}
}
然后,设置Chrome user-data-dir标志:
exports.config = {
...,
multiCapabilities: [{
'browserName': 'chrome',
'chromeOptions' : {
args: ['--lang=en',
'--window-size=1024,768',
'--user-data-dir=/chrome-profile/']
},
specs: ['test-*.js']
}]
};