标签: galen

结合Galen和Protractor框架

故事

我们一直在广泛使用Protractor框架,并建立了一个相当大的测试代码库.我们也一直在关注Page Object模式来组织我们的测试.

最近,我们开始使用Galen框架填补视觉/布局/响应式设计测试的空白.我们非常喜欢这个框架,并希望继续使用它.

现在最大的问题是Page Objects.两个框架都有自己的定义页面对象的方法.

这是Protractor页面对象的示例:

var LoginPage = function () {
    this.username = element(by.id("username"));
    this.password = element(by.id("password"));

    this.loginButton = element(by.binding("buttonText"));
};

module.exports = new LoginPage();
Run Code Online (Sandbox Code Playgroud)

而且,这是一个示例Galen页面对象:

this.LoginPage = $page("Login page", {
    username: '#username',
    password: '#password',
    loginButton: 'button[ng-click*=login]'
});
Run Code Online (Sandbox Code Playgroud)

目前,我们正在复制定位器并重复自己 - 违反DRY原则.而且,另一个后续问题是Galen目前仅支持"by css","by id"或"by xpath"定位技术 - 这意味着页面对象不会一对一地映射.

问题

有没有办法避免重复将Protractor和Galen结合在一起的页面对象和元素定位器?

javascript selenium pageobjects protractor galen

9
推荐指数
1
解决办法
358
查看次数

有什么方法可以在 stripe 元素中预填充付款信息吗?

我在代码中使用 Stripe 元素付款表单。在Galen中进行测试时,我们必须切换到iframe来填充支付信息并测试整个流程。但是,由于 iOS 的 CORS 政策,它不允许我们切换 iframe。

有什么方法可以预先填写付款表单中的信息,以便我们可以在 iOS 中测试我们的代码吗?

payment-gateway cors ios stripe-payments galen

6
推荐指数
2
解决办法
6391
查看次数