2016-09-21 4 views
1

체크 박스가 선택되어 있는지 테스트하려고합니다.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 ']"). (.)를 클릭하고 알려주세요. –

+0

@SaurabhGaur 의미는 무엇입니까. ... 확인란을 감지 할 수 없습니다 ... 이는 실패했음을 의미합니다. – everline

답변

0

예상대로 작동하지 않는 문제 또는 다른 알 수없는 문제 WebElement::click()을 설계로 인해 일부 시간입니다.

그래서이 경우 셀레늄은 문제를 없애기 위해 코드를 사용하여 특정 작업을 자동으로 수행하도록 제공합니다.

이 목적을 위해 목적을 해결하기 위해 현재 창 프레임/iframe에서 직접 JavaScript 코드를 호출 할 수있는 메서드 이름 execute_script()이 있습니다. 이 메서드에서 첫 번째 매개 변수 입력은 JavaScript 코드 조각이며 두 번째 매개 변수는 JavaScript 코드에서 JavaScript 변수로 사용할 수있는 개체 배열입니다. JavaScript 코드에서이 객체 입력 배열은 arguments 변수를 사용합니다.

그래서 당신은 아래를 클릭 수행 할 수 있습니다 : -

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

: - 자바 스크립트 주입 HTMLElement.click()는 테스트 컨텍스트에서 사용할 수 없습니다. 그것은 시험의 목적에 어긋납니다. 첫 번째 이유는 진짜 click (focus, blur, mousedown, mouseup...)과 두 번째 이벤트와 같은 모든 이벤트를 생성하지 않기 때문입니다. 실제 사용자가 요소와 상호 작용할 수 있다고 보장하지 않기 때문입니다. 그러나 문제를 없애기 위해서는 대체 솔루션으로 사용할 수 있습니다.

관련 문제