Работа с флажками - невозможно проверить, отключены ли флажки - PullRequest
0 голосов
/ 21 января 2020

Ищите обзор по этому вопросу, чтобы сообщить мне, является ли это правильным подходом к проверке отключенных флажков.

Часть модели моей страницы здесь:

class eligibleAccountType {
  constructor (text) {
      this.label    = label.withText(text);
      this.checkbox = this.label.find('input[type=checkbox]');
  }
}

class ProgramOptionsSubscriptionRulesPage{
    constructor(){
        this.contractsatAccountLevel = Selector("#program_option_allow_participant_account_contracts")
        this.eligibleAccountTypesList = [
          new eligibleAccountType("Residential"),
          new eligibleAccountType("Commercial"),
          new eligibleAccountType("Industrial")
      ];

Часть моего теста здесь

if (userdata.userrole == "Read Only") {
 
 for (const eligibleAccountType of programOptionsSubscriptionRulesPage.eligibleAccountTypeList) {
            await t.expect(eligibleAccountType.hasAttribute('disabled')).ok()
          }
        }

Получение ошибки, такой как:

ReferenceError: label is not defined

Ответы [ 2 ]

2 голосов
/ 21 января 2020

Кажется, я обнаружил проблему, я не определил

const label = Selector('label');
1 голос
/ 21 января 2020

Я не вижу определения label в вашем примере. Вы можете попытаться переписать ваш конструктор eligibleAccountType, используя Selector:

class eligibleAccountType {
  constructor (text) {
      this.label    = Selector(...).withText(text);
      this.checkbox = Selector(...).find('input[type=checkbox]');
  }
}

В этой ситуации может быть полезно проверить разметку необходимых элементов. Пожалуйста, обратитесь к репозиторию «Примеры TestCafe»: https://github.com/DevExpress/testcafe-examples/blob/master/examples/element-properties/check-element-markup.js

Обновление:

и теперь я вижу, что мой список на самом деле даже не строит, и я получаю эту ошибку "1) TypeError: programOptionsSubscriptionRulesPage.elptableAccountTypeList не повторяется"

Кажется, у вас есть ошибка именования в вашей l oop:

for (const eligibleAccountType of programOptionsSubscriptionRulesPage.eligibleAccountTypeList) {

Согласно определению класса ProgramOptionsSubscriptionRulesPage имя списка должно быть eligibleAccountTypesList (с символом "s").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...