Я не эксперт JS.Я не проверял приведенный ниже код.Я объясняю, основываясь на том, как я достиг бы этого в Java.Вы можете изменить соответственно.
Я бы создал абстрактный класс HomePage
, который определяет все общие функциональные возможности для всех локалей.USHomePage
, CAHomePage
классы должны расширять HomePage
.Или, Вы также можете использовать USHomePage
в качестве Базового класса HomePage
, и CAHomePage
расширит это.
Теперь в приведенном ниже примере у вас есть все функции домашней страницы США, и вы также добавили специальныеособенности CA.
Например:
export class CAHomepage extends HomePage {
public loanPurposeRadio: string;
constructor() {
super();
this.loanPurposeRadio = '[ng-form="loanPurposeField"] label';
}
}
Теперь вы можете поддерживать некоторый класс фабрики для возврата конкретного экземпляра HomePage в зависимости от сайта, который вы тестируете.
var homePageFactory = {
"US": () => { return new HomePage() },
"CA": () => { return new CAHomePage() },
"UK": () => { return new UKHomePage() }
}
В зависимости от региона / страны, вы можете получить доступ к определенной домашней странице.Ваши тесты не привязаны к конкретному сайту, а являются очень общими.Зависит от сайта, который вы тестируете, они ведут себя по-разному.
var lang = "US"
var homePage = homepageFactory[lang]();
homePage.login();
homePage.register();