【发布时间】:2019-02-15 12:07:16
【问题描述】:
我们有两个地区需要支持,例如美国和加拿大。有些页面完全相同,有些页面有不同的选项。我如何使用页面对象模式为这种情况定义页面并减少重复?
我们以登录页面为例,对于美国如下,
import { by, element, ElementFinder } from 'protractor';
export class Homepage {
public startNowButton: ElementFinder;
public signinLink: ElementFinder;
constructor() {
this.startNowButton = element(by.css('button[sso-modal="SignUp"]'));
this.signinLink = element(by.linkText('Sign in'));
}
}
对于加拿大,有一个额外的复选框,
export class Homepage {
public startNowButton: ElementFinder;
public signinLink: ElementFinder;
public loanPurposeRadio: string;
constructor() {
this.startNowButton = element(by.css('button[sso-modal="SignUp"]'));
this.signinLink = element(by.linkText('Sign in'));
this.loanPurposeRadio = '[ng-form="loanPurposeField"] label';
}
}
如果我想同时支持这两个站点,那么在这种情况下对页面对象进行建模而不是创建两个类的最佳方法是什么?谢谢
【问题讨论】:
标签: selenium protractor pageobjects