2015-10-28 5 views
2

Я пытаюсь автоматизировать тесты продукта моей компании. Они используют своего рода переключатель. У меня есть HTML и изображение переключателя ниже. Я нашел кажущийся ответ на https://stackoverflow.com/a/24682401/901083, в результате получив код XPath //div[@class='toggle btn btn-default off btn-sm'], но этот div изменится на «переключение btn btn-sm btn-primary» после щелчка и «переключить btn btn-sm btn-default off» снова, когда он вернется , Как я в общих чертах отношусь к этому div независимо от его настройки?Selenium - настройка toggle

HTML

<div style="width: 80px; height: 30px;" class="toggle btn btn-default off btn-sm" data-toggle="toggle"> 
    <input data-off="O" data-on="I" data-size="small" data-toggle="toggle" data-val="true" data-val-required="The OptInReceiveEmail field is required." 
     data-width="80px" id="OptInReceiveEmail" name="OptInReceiveEmail" tabindex="0" value="true" type="checkbox"> 
    <div class="toggle-group"> 
     <label class="btn btn-primary btn-sm toggle-on">I</label><label class="btn btn-default btn-sm active toggle-off">O</label> 
     <span class="toggle-handle btn btn-default btn-sm"></span> 
    </div> 
</div> 

Изображение
enter image description here

+0

Извините. Я переехал в другой раздел проекта и не получил возможности опробовать решение. Я пойду к нему снова, когда приеду на работу в понедельник. –

ответ

3

Предполагая, что там нет других кнопок переключаемых на странице, вы можете, например, проверить наличие data-toggle атрибута:

//div[@data-toggle] 

Если есть другие кнопочные переключатели, и вам нужен данный «электронный» переключатель:

//div[@data-toggle][input/@id = "OptInReceiveEmail"] 
+0

Это работает. По какой-то причине я думал, что таргетинг на Div не позволяет клику. Я, должно быть, путаю другую ошибку. –

Смежные вопросы