2011-11-01 4 views
1

Ruby의 Watir에서 마우스를 아래로 끌어 내려고 시도하고 있습니다.watm에서 anchor가있는 onmouse가 감지되지 않음

지금까지 어느 쪽도 아니는 일하지 않은 :

$browser.div(:class => "rolloverMAINMenu").fire_event("onMouseOver") 

$browser.a(:style=>"background-color:cccccc;width:200px;").fire_event("onMouseOver") 

HTML, 아래의 두 스크립트를 모두 사용하여 시도 : 사업부를 들어

<font COLOR="green"> 
<a style="background-color:cccccc;width:200px;" onmouseover="rolloverMenu(1, 'mainMenu');" onmouseout="rolloverMenu(0, 'mainMenu');" 
onclick="rolloverMenu(0, 'mainMenu');"> 
&nbsp;&nbsp;<B> Roll Over Menu </B></a> 

<div style="background-color:cccccc;width:200px;" class="rolloverMAINMenu" id="mainMenu" style="display: none;" onmouseover="rolloverMenu(1, 'mainMenu');"` 
+0

시도한 코드를 실행합니까? 당신은 그 두 가지 모두를 시도해 보았습니까? 올바른 대상을 얻고 있는지 확인하십시오. (같은 클래스 또는 스타일을 가진 다른 객체가있을 수 있기 때문에) camelCase 대신 HTML로 표시되는 이벤트 이름에 대해 모두 소문자로 시도 했습니까? –

+0

첫 번째 줄을 컴파일하고 아무것도 표시하지 않습니다. 두 번째 결과는 다음과 같습니다. 'assert_exists ': style, "background-color : cccccc; width : 200px;"를 사용하여 요소를 찾을 수 없습니다. (Watir :: Exception :: UnknownObjectException) 나는 그 순간을 단순히 감지하는 데 어려움을 겪고있다. – user1023482

답변

0

을 , 그것은 ID를 가지고 있기 때문에 ID 값은 (HTML 스펙에 따라) 고유해야한다. 그는 페이지. 그러면 올바른 요소를 선택하게됩니다.

두 번째 코드는 'onMouseover와'I 이벤트 그런 식으로 지정하고 링크에 대해 CamelCase를

browser.div(:id, 'mainMenu').fire_event('onmouseover') 

를 사용하지 것이다, 당신이 겪고있는 문제를 식별한다을 찾고 있기 때문이다. 나는 보이지 않는다 : 문체는 identifying elements의 옵션으로 나열되어있다. (잠재적으로 그 문서는 유효 기간이 만료 될 수 있지만) 텍스트 나 다른 측면을 사용하도록 제안하거나 xpath에 의존해야 할 수도있다.

browser.link(:text, /Roll Over Menu/).fire_event('onmouseover') 

또는 링크가 클릭에 반응하도록 설정되어 있기 때문에, 당신은 그것을 시도 할 수

또한

browser.link(:text, /Roll Over Menu/).click 

클라이언트가에 대한 응답으로 자바 스크립트 방법을 실행하기 때문에 당신이 스크립트에서 다음을 배치하는 경우 이벤트가 발생하면 마우스 오버 또는 클릭에 대한 응답으로 화면에 렌더링 된 요소와 상호 작용하기 전에 DOM을 업데이트 할 수 있도록 스크립트에서 약간의 일시 중지가 필요할 수 있습니다.

관련 문제