我正在使用带有AngularJS的Protractor来创建端到端测试。 我有许多文件,我的specs数组非常大,并且我想在所有文件中共享一个通用函数。 是否有一种方法可以创建某种全局beforeEach,在其中可以注入我的函数?exports.config对象是否公开了某些内容,以便我可以在所有文件中拥有一个共同的变量?目前,我正在借助“browser”变量,但这可能很危险。非常感谢您的帮助。谢谢
我正在使用带有AngularJS的Protractor来创建端到端测试。 我有许多文件,我的specs数组非常大,并且我想在所有文件中共享一个通用函数。 是否有一种方法可以创建某种全局beforeEach,在其中可以注入我的函数?exports.config对象是否公开了某些内容,以便我可以在所有文件中拥有一个共同的变量?目前,我正在借助“browser”变量,但这可能很危险。非常感谢您的帮助。谢谢
是的,您可以通过protractor配置中的onPrepare()挂钩轻松实现:
exports.config = {
// ...
// A callback function called once protractor is ready and available, and
// before the specs are executed
// You can specify a file containing code to run by setting onPrepare to
// the filename string.
onPrepare: function() {
// you can also add properties to globals here
}
};
这个非常有效...只要确保使用适当的分隔符','正确终止前面的配置参数。
exports.config = {
seleniumAddress: **,**
onPrepare: function() {
browser.driver.manage().window().maximize();
}**,**
baseUrl:
}
var ptor
使ptor成为onPrepare()函数的本地变量。您需要将其添加到全局变量中:global.ptor = protractor.getInstance()
。无论如何,最近版本的protractor已经不需要这样做了,它会自动发布一个“browser”全局变量(之前称为ptor)。您只需要在测试中使用browser
即可。 - JB Nizet