首页 > 解决方案 > 每次在量角器中打开浏览器时如何访问onPrepare中的功能

问题描述

我正在使用量角器-黄瓜框架(量角器 5.2.2 和黄瓜 3.2.0)。我需要使用多个用户凭据登录。所以我需要使用隐身窗口。所以我在我的配置文件中进行了设置,如下所示。

capabilities: {
'browserName': 'chrome',
 chromeOptions: {
    args: ["--incognito"]
 }
},

我添加了

browser.restart();

在每个注销代码之后。但是当我打开新的隐身窗口时,我无法访问 onPrepare 函数内部的代码。下面给出了我的 onPrepare 函数。

onPrepare: function() {
 browser.ignoreSynchronization = true;
 browser.manage().window().maximize();
 global.testdata = require('./support/testdata.js');
}

那么我如何在每次打开浏览器时访问 onPrepare 函数内部的代码。提前致谢。

标签: protractor

解决方案


您可以将代码包装onPrepare()到一个函数中并将该函数导出到一个.js文件中。

// onPrepare.js, move the codes in `onPrepare()` at here  
module.exports = function onPrepareConfig() {
    browser.ignoreSynchronization = true;
    browser.manage().window().maximize();
    global.testdata = require('./support/testdata.js');
}


// protractor conf.js       
onPrepare: function() {
    // you need to import `onPrepare.js` within this function
    // because the variable `browser` we used in `onPrepare.js`
    // are available inside `onPrepare()`

    var onPrepareConfig = require('./onPrepare.js');
    onPrepareConfig();
}


// the code line where you call browser.restart();
browser.restart();
var onPrepareConfig = require('./onPrepare.js');
onPrepareConfig();

推荐阅读