Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 量角器中的forEach()循环,用于测试语言更改_Typescript_Foreach_Protractor - Fatal编程技术网

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);
    });
});