我是赛普拉斯的新手,正在尝试在 POM 上创建框架。我已按照这些步骤创建框架
- 使用名为'locators.json' 的文件创建对象存储库,该文件中的数据如下所示
{
"RxClaims_LoginPage":
{
"UserName":"#f0",
"Password":"#f1",
"SignInButton":"#xlg0003"
}
}
- 在 Integration>Examples 下,我创建了名为OR_Approch.js的测试,看起来像
/// <reference types="Cypress" />
import ORLoginPage from '../PageObjects/OR_Login'
describe('OR_Approach',function(){
it('RxClaimsLogin', function() {
const login = new ORLoginPage();
cy.visit('/')
cy.wait(2000)
login.EnterData_In_UserName()
login.Password()
login.SignInButton()
})
})
3.我在 Integration>POM 下创建了另一个文件夹,其中包含所有 POM - 其中一个名为OR_Login.js看起来像
class ORLoginPage{
EnterData_In_UserName()
{
cy.fixture('example').then(function (dataJson) {
this.testData = dataJson;
})
cy.fixture('locators').then(function (oRdata) {
this.objRep = oRdata;
})
cy.enterDatainTextBox(this.objRep.RxClaims_LoginPage.UserName,this.testData.UserName)
return this
}
Password(){
return 'cy.enterDatainTextBox(this.objRep.RxClaims_LoginPage.Password,this.testData.Password)'
}
SignInButton(){
return 'cy.clickOnObject(this.objRep.RxClaims_LoginPage.SignInButton)'
}
}
export default ORLoginPage;
- 在 Support commands.js下包含自定义方法,如下所示
Cypress.Commands.add('enterDatainTextBox', (textBoxElePath, textValue) => {
cy.get(textBoxElePath).type(textValue)
})
所以我的问题是我想访问 OR_Login.js 中所有函数的locators.js数据。我已经尝试过beforeEach测试文件的方法,它工作正常,但是当我在像OR_Login.js这样的任何类中使用它时它不起作用。请提出一些建议,以便可以在 POM 类文件中读取固定装置的数据。