Ошибка подтверждения, когда идентификаторы одинаковы для разных вариантов поведения элемента - PullRequest
1 голос
/ 22 января 2020

Я балуюсь ситуацией доступа на основе ролей и вроде как застрял в утверждении.

Для полного доступа поле выглядит примерно так:

<input class="clickable_input clickable_timeholder ui-autocomplete-input ui-widget ui-widget-content ui-corner-left hidden" data-old-value="12:00 am" type="text" value="12:00 am" name="program_constraint[event_window_constraints_attributes][0][local_start_time]" id="program_constraint_event_window_constraints_attributes_0_local_start_time" autocomplete="off" role="textbox" aria-autocomplete="list" aria-haspopup="true">

Для доступа только для чтения поле выглядит так:

<input class="hidden clickable_input clickable_timeholder" data-old-value="12:00 am" type="text" value="12:00 am" name="program_constraint[event_window_constraints_attributes][0][local_start_time]" id="program_constraint_event_window_constraints_attributes_0_local_start_time"></input>

Я хотел бы работать только с одним селектором, который имеет полный доступ, а затем проверять наличие или не пропускать или не передавать дело.

Я заканчиваю с ошибкой утверждения ниже прежде всего, потому что оба условия используют тот же самый идентификатор, и единственное различие находится в их имени класса. Я не нашел хороший пример, чтобы справиться с этим. Будучи еще неделей, чтобы работать с TestCafe, я прекрасно понимаю модель DOM, я не могу эффективно вписать это в модель страницы и продолжать бить по стене.

expected true to be falsy

Это определение моего селектора в модели страницы:

this.eventWindowStartTime = Selector("#program_constraint_event_window_constraints_attributes_0_local_start_time")

мой тестовый код для утверждения

await t.expect(programOptionsConstraintsPage.eventWindowStartTime.exists).notOk()

1 Ответ

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

Вы можете использовать метод filter , чтобы найти только элемент с определенным классом css.

Например:

Selector('#input_id').filter('.ui-widget')
...