Typescript 量角器中的forEach()循环,用于测试语言更改
如何在页面对象模型中格式化以下代码,以循环浏览网页上的所有可用显示语言: 在页面对象中Typescript 量角器中的forEach()循环,用于测试语言更改,typescript,foreach,protractor,Typescript,Foreach,Protractor,如何在页面对象模型中格式化以下代码,以循环浏览网页上的所有可用显示语言: 在页面对象中 languageBulgarian = element(by.css('.vm-language-choices > li:nth-child(1)')); loginButtonTextBulgarian = 'XXX'; aboutTextBulgarian = 'XXX'; languageCzech = element(by.css('.vm-language-choices > li:n
languageBulgarian = element(by.css('.vm-language-choices > li:nth-child(1)'));
loginButtonTextBulgarian = 'XXX';
aboutTextBulgarian = 'XXX';
languageCzech = element(by.css('.vm-language-choices > li:nth-child(2)'));
loginButtonTextCzech = 'Prihlaseni';
aboutTextCzech = 'O';
languageDanish = element(by.css('.vm-language-choices > li:nth-child(3)'));
loginButtonTextDanish = 'Log ind';
aboutTextDanish = 'Om';
等等
在spec文件中,我正在测试:
it('should change the language to Czech when selected from the language drop-down', () => {
loginPage.clickLanguageDropdown();
loginPage.languageCzech.click();
loginPage.waitForElementText(loginPage.loginButton, loginPage.loginButtonTextCzech);
loginPage.waitForElementText(loginPage.aboutHeader, loginPage.aboutTextCzech);
expect(loginPage.loginButton.getText()).toEqual(loginPage.loginButtonTextCzech);
expect(loginPage.aboutHeader.getText()).toEqual(loginPage.aboutTextCzech);
});
我想将此函数移到一个页面对象帮助器函数中,并使用forEach在数组中遍历语言。我是个新手,不知道怎么做…您可以将所有语言和预期文本存储为数组中的对象。然后用forEach遍历数组。由于
languageBulgarian
元素只会根据第n个子元素的数量进行更改,因此可以使用数组索引进行更改,甚至不需要存储任何其他页面对象
it('should change the language when selected from the language drop-down', () => {
var languages = [
{name: 'Bulgarian', login: 'XXX', about: 'XXX'},
{name: 'Czech', login: 'Prihlaseni', about: 'O'}
];
languages.forEach((language, i) => {
loginPage.clickLanguageDropdown();
loginPage.element(by.css('.vm-language-choices > li:nth-child(' + (i + 1) + ')').click();
expect(loginPage.loginButton.getText()).toEqual(languages[i].login);
expect(loginPage.aboutHeader.getText()).toEqual(languages[i].about);
});
});
您可以将所有语言和预期文本作为对象存储在数组中。然后用forEach遍历数组。由于
languageBulgarian
元素只会根据第n个子元素的数量进行更改,因此可以使用数组索引进行更改,甚至不需要存储任何其他页面对象
it('should change the language when selected from the language drop-down', () => {
var languages = [
{name: 'Bulgarian', login: 'XXX', about: 'XXX'},
{name: 'Czech', login: 'Prihlaseni', about: 'O'}
];
languages.forEach((language, i) => {
loginPage.clickLanguageDropdown();
loginPage.element(by.css('.vm-language-choices > li:nth-child(' + (i + 1) + ')').click();
expect(loginPage.loginButton.getText()).toEqual(languages[i].login);
expect(loginPage.aboutHeader.getText()).toEqual(languages[i].about);
});
});