Python код для чтения текстовой метки, связанной с тумблером в Selenium - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь включить / выключить тумблер с помощью кода селена. Проблема в том, что я хотел бы получить доступ к переключателю по его «текстовой метке», а не по его идентификатору или имени. Вот HTML для переключателя

<input type="checkbox" name="ot-group-id-C0002" class="switch-checkbox category-switch-handler" id="ot-group-id-C0002" aria-checked="true" aria-controls="ot-desc-id-C0002" aria-labelledby="ot-header-id-C0002" data-optanongroupid="C0002" checked="true" tabindex="0">
<label class="switch-label" for="ot-group-id-C0002">
    <span class="switch-inner"></span> 
    <span class="switch-nob"></span> 
    <span class="label-text">Performance Cookies</span>
</label>

Я хотел бы получить доступ к переключателю через текст «Файлы cookie производительности», а не его идентификатор или имя.

1 Ответ

1 голос
/ 17 июня 2020

вы можете прочитать мой ответ на аналогичный вопрос здесь для получения подробной информации об использовании xpath в селене.

дополнительная информация, которую я там не упомянул, но может вам помочь:

для поиска по тексту мы используем:

//*[text()='Performance Cookies']

, чтобы получить его родительский (метку), мы используем:

ancestor::label

, чтобы получить предыдущий (тег / элемент перед), который ввод, который мы используем

preceding::input

, теперь объединяем все это, и мы получаем:

//*[text()='Performance Cookies']/ancestor::label/preceding::input[@type='checkbox']

enter image description here

...