创建赛普拉斯静态内容的选择

问题描述 投票:0回答:1

我们从创业板/斯波克移动赛普拉斯的前端自动化。随着创业板/斯波克,页面对象有静态内容。这是用于创建页面对象的选择。

class LoginPage extends Page {
//private static Logger log = LoggerFactory.getLogger(LoginPage.class);


static url = 'login/'
static at = { title == "Login to TalentBank"}
static content = {
    backgroundImage { $("div [style*=\"background-image\"]") }
    logo { $(".center-img img") }
    emailHeader { $("#emailGroup:not([style*=\"none\"]) label") }
    emailTextBox { $('#emailGroup:not([style*="none"]) #email') }
    nextButton { $('#loginWithEmail') }
    pwdHeader { $("#passwordGroup:not([style*=\"none\"]) label") }
    pwdTextBox { $("#passwordGroup:not([style*=\"none\"]) #password") }
    loginButton { $("#loginWithPassword") }
    loginError(wait: true) { $("#loginError") }

在桧,我不能确定在哪里创建并调用这些对象。是选择假设为固定装置或作为支持文件被创建?我已经通过了柏树文档阅读,但无法找到我所期待的。

编辑:2/4

在支持,我试图创建一个LoginPage.js文件包含的对象

// Login Page Objects
const emailTextBox = $('#emailGroup:not([style*="none"]) #email');

我的测试是集成目录下。我用的是新的常在我的测试。有在我的IDE没有错误,因为测试似乎找到恒定,它显示在Ctrl +空格键代码补全。

describe('Successfull log in to the System', function() {

    it('Standard User - Successful log in ', function() {
       cy.get(emailTextBox).type('[email protected]')

然而,当我跑我的测试,我得到一个错误,指出

的ReferenceError:emailTextBox没有定义

.

javascript cypress
1个回答
1
投票

好了,这些都是不同的选择与互动:

我会推荐一个完全不同的类,然后做他们的进口?因此,例如,一个名为locators.js

其中包含:

export const backgroundImage = () => cy.get("div [style*=\"background-image\"]");

然后在其他的文件,你可以像这样导入:

import * as locators from "../locators/locators.js";

而这样称呼它(举例):

locators.backgroundImage()
    .should('be.visible')
    .click();

希望这可以帮助!

© www.soinside.com 2019 - 2024. All rights reserved.