Мне нужно нажать на этот вход, только если он имеет "aria-checked =" true " - PullRequest
0 голосов
/ 13 января 2020

Мне нужно нажимать на этот вход, только если он имеет "aria-checked =" true "

<input class="mat-checkbox-input cdk-visually-hidden" type="checkbox" id="mat-checkbox-131-input" tabindex="0" aria-checked="true" style="" xpath="1">

Ruby:

aria_checked = true
if aria_checked = true
   impressora_etiqueta = "//mat-checkbox[@id='mat-checkbox-23']/label/div"
   page.find(:xpath, impressora_etiqueta).click
end

1 Ответ

0 голосов
/ 13 января 2020

Есть много способов сделать то, что вы хотите - самый простой, вероятно,

page.first('#mat-checkbox-23[aria-checked="true"]', minimum: 0)&.click

, который будет искать первый элемент с заданным идентификатором и aria-checked = "true" и щелкнет по нему, если он существует ,

Примечание. Идентификатор в вашем тесте и в примере HTML не совпадали, поэтому я выбрал идентификатор из вашего теста, при необходимости измените его. Также у вас есть класс cdk-visually-hidden. Если элемент фактически не виден на странице, это не сработает, и вам нужно добавить больше окружающих HTML к вашему вопросу с более подробным описанием. именно то, что вы пытаетесь сделать (вы не можете нажать на невидимые элементы)

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