Cypress: Как проверить, установлен ли сгенерированный флажок и имеет ли атрибут aria-проверено=»истина»

#html #checkbox #attributes #cypress #checked

#HTML #флажок #атрибуты #кипарис #проверен

Вопрос:

Я хочу убедиться, что флажок установлен. Но обычно это не флажок из типа=»флажок», поэтому у него НЕТ свойства «проверено». Вместо этого вы можете найти в HTML-Doom арию-проверено=»истина». Как я могу прочитать это значение?

HTML-Снипет:

  lt;mat-checkbox class="mat-checkbox mat-primary mat-checkbox-checked" aria-label="checkBoxCapacityBaseEditDayofWeek: 1" id="DAY1"gt;  lt;label class="mat-checkbox-layout" for="DAY1-input"gt;  lt;span class="mat-checkbox-inner-container"gt;  lt;input type="checkbox" class="mat-checkbox-input cdk-visually-hidden" id="DAY1-input" tabindex="0" value="1" aria-checked="true"gt;  

То, что я так долго пытался:

Кипарисовый код (ничего не работает):

 // cy.get('#DAY2')  // .should('have.value', 'aria-checked="true"')    cy.get('#DAY1')  .should('have.attr', 'aria-checked', 'false')   cy.get('#DAY2')  .should('have.attr', 'aria-checked', 'true')   // .invoke('val', 'aria-checked')  // .should('eq', true)  // .should('have.prop', 'aria-checked', true)  // .should('have.attr', 'aria-checked', 'true')  

Как я могу получить значение true?

РЕДАКТИРОВАТЬ: Я нашел решение: Cypress-Код:

 cy.get('#DAY1-input').should('have.attr', 'aria-checked', 'true')  

Ответ №1:

Проблема с тем, что вы пытаетесь, заключается в том, что вы выбираете только родительский элемент со своим cy.get() . Если вы используете .find() , вы можете отключить родительский элемент, чтобы найти дочерние элементы. Должно сработать что-то вроде следующего:

 cy.get('#DAY1')  .find('#DAY1-input')  .should('have.attr', 'aria-checked', true);  

Кроме того, вы можете просто выбрать DAY1-input элемент напрямую, так как он имеет уникальный идентификатор:

 cy.get('#DAY1-input')  .should('have.attr', 'aria-checked', true);  

Комментарии:

1. Спасибо. Я уже нашел его сам… Должно быть, я все время следил за этим явным идентификатором… как мне не стыдно^^

2. Ха-ха, упс! Я не видел вашей правки, когда писал. Рад, что вы смогли в этом разобраться 😀