Я обновил вопрос. Надеюсь, теперь стало понятнее
то я пытаюсь сделать, это нажать (или выключить) любой из флажков на моей странице. Как вы можете видеть из HTML, каждый элемент флажка будет иметь уникальный идентификатор, но когда я пытаюсь щелкнуть по нему, я получаю исключение «Элемент не найден». Я перепробовал все стандартные локаторы (тоже нет iframe) - я могу найти элемент checkbox, но я просто не могу щелкнуть по нему.
Пожалуйста, просмотрите следующий HTML:
<div class="form-horizontal">
<div class="row">
<div class="col-sm-3">
<label for="Url_option1">Option 1</label>
</div>
<div class="col-sm-1">
<input type="checkbox" data-yesno-name="Url_option1" class="url-field-toggle">
<span class="glyphicon clickable glyphicon-remove" id="toggle_undefined"></span>
<input id="Url_url_option1" name="Url.url_option1" type="hidden" value="no">
</div>
<div class="col-sm-3">
<label for="Url_option2">Option 2</label>
</div>
<div class="col-sm-1">
<input type="checkbox" data-yesno-name="Url_option2" class="url-field-toggle">
<span class="glyphicon clickable glyphicon-remove" id="toggle_undefined"></span>
<input id="Url_translation_c" name="Url.option2" type="hidden" value="no">
</div>
<div class="col-sm-3">
<label for="Url_option3">Option 3</label>
</div>
<div class="col-sm-1">
<input type="checkbox" data-yesno-name="Url_option3" class="url-field-toggle">
<span class="glyphicon clickable glyphicon-remove" id="toggle_undefined"></span>
<input id="Url_option3" name="Url.option3" type="hidden" value="no">
</div>
</div>
<div class="row">
<div class="col-sm-12">
</div>
</div>
<div class="row">
<div class="col-sm-3">
<label for="Url_option4">Option 4</label>
</div>
<div class="col-sm-1">
<input type="checkbox" data-yesno-name="Url_option4" class="url-field-toggle">
<span class="glyphicon clickable glyphicon-remove" id="toggle_undefined"></span>
<input id="Url_option4" name="Url.option4" type="hidden" value="no">
</div>
<div class="col-sm-3">
<label for="Url_option5">Option 5</label>
</div>
<div class="col-sm-1">
<input type="checkbox" data-yesno-name="Url_option5" class="url-field-toggle">
<span class="glyphicon clickable glyphicon-remove" id="toggle_undefined"></span>
<input id="Url_option5" name="Url.option5" type="hidden" value="no">
</div>
<div class="col-sm-3">
<label for="Url_option6">Option 6</label>
</div>
<div class="col-sm-1">
<input type="checkbox" data-yesno-name="Url_option6" class="url-field-toggle">
<span class="glyphicon clickable glyphicon-remove" id="toggle_undefined"></span>
<input id="Url_option6" name="Url.option6" type="hidden" value="no">
</div>
</div>
</div>
Единственный способ, которым я могу щелкнуть по любому из элементов флажка, - найти следующий элемент:
<span class="glyphicon clickable glyphicon-remove" id="toggle_undefined"></span>
Использование локатора XPath:
i.e //*[@id="toggle_undefined"]
В этом случае вызывается событие click, но оно, очевидно, будет щелкать только первый элемент (или флажок в этом случае) на странице (у меня более 20 флажков на странице).
На основании приведенного выше HTML-кода, допустим, я хотел включить второй элемент флажка во второй строке. Вот код для этого элемента флажка:
<div class="col-sm-3">
<label for="Url_option5">Option 5</label>
</div>
<div class="col-sm-1">
<input type="checkbox" data-yesno-name="Url_option5" class="url-field-toggle">
<span class="glyphicon clickable glyphicon-remove" id="toggle_undefined"></span>
<input id="Url_option5" name="Url.option5" type="hidden" value="no">
</div>
Основываясь на информации выше, я могу только установить флажок, найдя и нажав на следующий элемент:
<span class="glyphicon clickable glyphicon-remove" id="toggle_undefined"></span>
Как я должен создать уникальный локатор XPath для этого элемента, который я мог бы использовать, чтобы щелкнуть по любому из флажков на моей странице?