javascript - Protractor Jasmine 规范描述中的浏览器功能
问题描述
我想为单个测试用例生成两个单独的报告。为此,我browser.getCapabitities
在测试中使用了获取浏览器名称和版本的方法。
现在,当我在规范描述的末尾使用此变量时,值为undefined
. 在browserNameforSpec
描述之前获得价值。只有当我在规范末尾使用此值时,它才会显示未定义。我无法得到发生这种情况的原因。有什么方法可以在测试开始之前更改此规范描述的名称。
我的代码是
let capsPromise = browser.getCapabilities();
let browserNameforSpec;
capsPromise.then(function(caps) {
console.log(caps);
let browserName = caps.get('browserName');
let browserVersion = caps.get('version');
browserNameforSpec = browserName + '-' + browserVersion + '-';
console.log(browserNameforSpec);
});
describe( '0030 Test for login' + browserNameforSpec, function () { // this.browserNameforSpec value is undefined
// 1.
it('Navigate to the login page', async () => {
await navigate.to.the(loginPage);
});
// 2
it('Click onto language button', async() => {
await click.onto(languageButton);
await expect(languageDropdown.isDisplayed());
});
// 3
it('English Language is selected', async() => {
await click.onto(englishLanguage);
await expect(languageButton.getText()).toBe('English');
});
// 4.
it('Correct user name is written into email field', async() => {
await usernameField.click();
await enter(correctUsername, into(usernameField));
});
// 5.
it('Correct password is written into password field', async() => {
await passwordField.click().then(function () {
passwordField.clear();
enter(correctPassword, into(passwordField));
})
});
// 6.
it('Login button is clicked and home page is opened', async() => {
await click.onto(loginButton);
});
});
解决方案
将以下代码添加到您的onPrepare()
browser.getCapabilities().then(function (cap) {
browser.browserName = cap.caps_.browserName;
});
你在你的测试中调用如下
describe( '0030 Test for login' + browser.browserName, function () {
// 1.
it('Navigate to the login page', async () => {
await navigate.to.the(loginPage);
});
希望对你有帮助。。
推荐阅读
- ios - 我可以在不创建新实例的情况下更改 UIColor 值吗?
- jenkins - 如何使用管道样式从 Jenkins Job Builder yaml 文件中的文件定义 dsl 内容
- javascript - 如何将带有映射的键名更改为嵌套对象?
- r - R - 使用 sapply 实现个性化功能
- c++ - 直接在 MATLAB 中使用 tensorflow/keras?
- java - JAVA:使用带有值的映射作为字符串的数组列表
- java - 春季计划未按时运行
- javascript - 使用 li 时溢出正在父 div 后面发送下拉列表,z-index 不起作用
- python - 如果为异常
- database - Docker Postgres 存储持久性和在本地初始化数据库