2014-10-30 2 views
3

에 마우스를 올리면 작동하지 않습니다. FF 및 크롬에서 마우스를 움직일 때 액션이 제대로 작동합니다. 그러나 동일한 코드가 사파리에서 작동하지 않습니다. 나는 맥 OS와 셀레늄 webdriver와 자바를 사용하고있다.사파리, 셀렌 웹 드라이버

아래 코드를 시도했습니다.

new Actions(driver).moveToElement(element).build().perform(); 

JS :

String mouseOverScript = "if(document.createEvent){var evObj = document.createEvent('MouseEvents');evObj.initEvent('mouseover', true, false); arguments[0].dispatchEvent(evObj);} else if(document.createEventObject) { arguments[0].fireEvent('onmouseover');}"; 
        JavascriptExecutor js = (JavascriptExecutor) driver; 
        js.executeScript(mouseOverScript, element); 

그것은 쇼 스토퍼 문제이다. 어떤 도움을 주셔서 감사합니다.

+0

셀레늄이 테스트중인 Safari의 버전과 호환되는지 확인 했습니까? –

+0

@YuZhang, 네, 호환 가능합니다. 답장을 보내 주셔서 감사합니다. –

답변

3

마우스를 움직이면 WebDriver의 고급 사용자 상호 작용 API를 사용해야합니다. Java 언어 바인딩에서이 작업은 Actions 클래스에 의해 수행됩니다. 현재 불행히도 SafariDriverdoes not implement the Advanced User Interactions API이므로 직접 수행 할 수 없습니다. 구현되기 전까지는 자바 스크립트를 사용하여 시뮬레이트하여 마우스를 움직여 이벤트를 발생시킬 수 있습니다.

+0

위에서 언급 한 자바 스크립트는 다른 시나리오에서는 잘 작동하지 않고 한 시나리오에서만 제대로 작동합니다. 이상해. 자바 스크립트 코드 스 니펫이 있으면 공유 할 수 있습니까? 당신의 도움을 주셔서 감사합니다. –

+0

Selenium 사람들은 사파리 드라이버를 1 년 넘게 관리하지 못했지만, 그럴 수는 없었습니다 ... 한숨을 쉬었을 것입니다. – uchuugaka

+0

3 월 18 일, 아직 진행이 없습니다. : ( – SiKing

관련 문제