2016-09-21 2 views
1

Я пытаюсь проверить, установлен ли флажок.selenium checkbox не работает на python3

Как проверить состояние флажка, используя selenium Python3?

driver.find_element_by_id('privacyCheck1').is_selected() 
driver.find_element_by_id('privacyCheck1').click() 
driver.find_element_by_xpath(".//*[@id='privacyCheck1']").click() 


    <div class="mail_privacy_check"> 
    <p class="comment"> 
     <input type="checkbox" id="privacyCheck1" class="privacyCheck"> 
     <label for="privacyCheck1">...</label> 
    </p> 
    <div class="tableware typecolor">...</div> 
    </div> 
</div> 
+0

что вы имеете в виду не работает ?? нужно разделить, если есть какое-либо исключение, а также –

+0

и попробуйте один раз как «driver.find_element_by_css_selector» («label [for = 'privacyCheck1»] »). click()' и дайте мне знать .. –

+0

@SaurabhGaur Что я имею в виду. .. не может обнаружить флажок ... что значит не сработало. – everline

ответ

0

Некоторое время из-за проблем с разработкой или другого неизвестного вопроса WebElement::click() не работает должным образом.

Таким образом, в этом случае селен также обеспечил выполнение определенных действий без использования кода JavaScript, чтобы избавиться от проблемы.

Для этого существует метод имени execute_script(), где вы можете напрямую вызвать код JavaScript на текущий фрейм окна/iframe для решения ваших задач. В этом методе первый ввод параметров - это часть кода JavaScript, а второй параметр - массив объекта, который может использоваться в JavaScript-коде как переменная JavaScript. В коде JavaScript этот массив ввода объекта принимает значение arguments.

Таким образом, вы можете выполнить нажмите ниже: -

driver.execute_script("arguments[0].click()", driver.find_element_by_id('privacyCheck1')) 

Примечание: - Инъекция JavaScript HTMLElement.click() не должен использоваться в контексте тестирования. Это поражает цель теста. Во-первых, потому что он не генерирует все события, такие как реальный click (focus, blur, mousedown, mouseup...), и второй, потому что он не гарантирует, что реальный пользователь может взаимодействовать с элементом. Но чтобы избавиться от проблемы, вы можете использовать ее в качестве альтернативного решения.

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