Как найти элемент ":: after" в локаторе селена? - PullRequest
1 голос
/ 05 октября 2019

У меня есть несколько флажков на моей странице, некоторые из которых отмечены по умолчанию. Через мой код мне нужно обработать снятие отметки со всех текстовых полей на странице и затем продолжить.

Проблема в том, что флажки (как проверенные, так и не проверенные) имеют абсолютно одинаковую структуру HTML / DOM с одинаковыми атрибутами/ значения, кроме «:: after», появляющихся при установленном флажке. Как мне написать локатор, чтобы узнать, отмечен ли элемент или нет, а затем перейти к его снятию.

<!-- When checkbox is unchecked -->
<label class="someclasslabel" on-click="[[event]]">
    <span>Male</span>
    <input type="checkbox" data-bind="checked: $properties.value">
    <span class="checkbox"></span>
</label>


<!-- When checkbox is checked -->
<label class="someclasslabel" on-click="[[event]]">
    <span>Male</span>
    <input type="checkbox" data-bind="checked: $properties.value">
    <span class="checkbox">
::after
</span>
</label>

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

Ответы [ 2 ]

0 голосов
/ 05 октября 2019

После получения всех элементов-флажков (с одним и тем же селектором), независимо от того, отмечены они или нет, вы можете просмотреть их с помощью цикла и проверить, проверены ли они с помощью метода selected. (Ссылка C # здесь https://seleniumhq.github.io/selenium/docs/api/dotnet/ для свойства RemoteWebElement.Selected). Если .selected == true -》 нажмите;если не выбран, ничего не делать;

0 голосов
/ 05 октября 2019

Вы можете попробовать выполнить Javascript для вашего элемента checkbox, чтобы получить значение.

after_value = driver.execute_script
    ("return window.getComputedStyle(document.querySelector('.someclasslabel'),':after')
    .getPropertyValue('content');")

Это немного взломано, но стоит попробовать.

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