2014-02-17 1 views
2

캔버스 요소 뒤에 숨겨진 여러 div 요소를 포함하는 사용자 지정 입력 요소가 있습니다. div 요소는 클릭 이벤트를 처리하며 모든 브라우저에서 정상적으로 작동합니다.Watir-Webdriver : 요소 위치를 클릭하는 방법?

Watir-Webdriver에서 어떻게 이러한 요소를 클릭 할 수 있습니까? 우리는 div 요소를 찾아 .click 방법을 사용하는 경우 오류가 발생합니다

Element is not clickable at point (423, 247). Other element would receive the click: <canvas></canvas> 

가 어느 물론이 이벤트 전에 버블 링 것이다. 우리가 원하는 것은 div 요소가있는 위치를 클릭하는 것입니다 (처음에는 캔버스를 클릭 한 다음 div에 거품을 꽂습니다).

이벤트 버블 링을 올바르게 테스트하지 않았기 때문에 JavaScript 이벤트를 div에 직접 실행하지 않을 것입니다.

+0

페이지 (또는 제어)의 예를 제공 할 수 있습니까? 내 생각에 당신은 기본 셀레늄 - webdriver를 사용하여 div의 위치를 ​​얻은 다음 특정 위치에서 캔버스를 클릭 할 수 있다고 생각합니다. 그러나 테스트 페이지없이 작동하는지 확인하기는 어렵습니다. –

답변

0

div를 클릭 한 것처럼 캔버스 요소를 클릭 할 수 있습니다. 그러나 당신이 제기 한 질문에 답하기 위해서 : 당신은 기본 셀레늄 - 웹 드라이버 브라우저 드라이버에 액세스하고 이것을하기 위해 셀레늄 - 웹 드라이버 방법을 사용할 수 있습니다.

driver = $browser.driver 
    element = driver.find_element(css:'div.class_name') 
    driver.action.move_to(element).click.perform