CodeceptJS Page Object Models - yelenagotraining/E2EFrameworks GitHub Wiki

Page Object Models Pattern in CodeceptJs

  • Create a file for example LoginPageObject.js
  • Inside the file you can store and reference page objects in a following format
const { I } = inject();

module.exports = {
    shipFromDropDwon: `.always-opens-down`,
    deliverToInputBox: `#input-autocomplete-0RFZQss1KVI4`,
    commercialToggle: `#commercialsType-originalSite-aE9S1lScb`,
    shipmentItemsTypeDropDown: `#dropdown-box-gkweGxEBdaFn0`,
    shipmentItemsDimLength: `input#input-element-cJi6etUNdaFn0`,
    shipmentItemsDimWidth: `#input-element-cJi6ynFgdaFn0`,
    shipmentItemsDimHeight: `#input-element-cJi6QTlpdaFn0`,
    shipmentItemsDimNMFC: `#input-element-cJi6GUJVVIwP0daFn0`,
    shipmentItemsDimSub: `#input-box-TsZmmXvSVIwP0daFn0`,
    shiptmentItemsClass: `#input-box-TsZm7jnZhXDxVIwP0daFn0`,
    shipmentItemsTotalWeight: `#input-element-cJi6R2DeVIwP0daFn0`,
    selectCarrierButton: `#qDetails-submitQuoteDetailsBtn-E960x2`

}
  • Inside the codecept.conf.js, in the include section, add the page object file:
  include: {
    I: './steps_file.js',
    LoginPageObjects: './pages/LoginPageObject.js'
  },
  • inside your script, you can just call:
I.Click(LoginPageObjects.selectCarrierButton);

__