2009-05-04 8 views
5

html 페이지에서 swf를 클릭하기 위해 Selenium IDE를 사용하려고합니다. DIV id 및 소스 ID 변경은 타임 스탬프에 따라 다릅니다. id="FLASH_0_23458974594", id=/^FLASH_([0-9]+_)[0-9]([0-9]+)/ 또는 id="FLASH_glob:*"을 사용해 보았지만 IDE가 swf를 선택하지 않았습니다. 내가 여기서 뭔가 잘못하고있는거야?셀렌을 사용하여 swf를 클릭하십시오.

감사합니다.

답변

3

들어 보았습니까?

click | //object[contains(@id,'FLASH_')] 
+0

에 예를 볼 수 있습니다, 그것은 작동하지 않았다. 이 오류가 있습니다 : [오류] 로케이터를 찾을 수 없음 : // object [@ id, 'FLASH_'], 오류 = 오류 : 요소 // object [@ id, 'FLASH_'] contains – JLau

+0

삽입 태그를 사용하고있는 것을 보았습니다. 'object'를 'embed'로 바꿔야 할 수도 있습니다. 그렇지 않으면 페이지의 관련 HTML을 질문에 추가 할 수 있습니까? –

+0

IDE가 embed을 사용하여 IDE를 감지 할 수 있지만 클릭하지는 않습니다. 로그에 다음과 같이 표시됩니다. - [info] Executing : | click | // embed [contains (@ id, 'FLASH_')] | | 하지만 클릭하지는 않습니다. – JLau

2

플래시 개체를 클릭하면 작동하지 않습니다. Selenium을 사용하여 Flash를 자동화하는 유일한 방법은 JavaScript를 통해 Flash 객체의 UI 함수를 노출하는 것입니다. 그런 다음 Selenium RC의 getEval() 함수를 사용하여 해당 JavaScript를 호출 할 수 있습니다.

0

우리는 자바 클라이언트를 셀레늄 용으로 사용하고 때로는 웹 브라우저와 직접 상호 작용할 수 없을 때 자바 로봇을 사용하여 마우스를 이동하고 클릭하는 테스트가 있습니다. 이것은 단점을 가지고 있습니다 (예 : 브라우저가 전경에 있어야하고 정확성이 약간 까다로울 수 있음). 그러나 가상 시스템에서 테스트를 실행하면 이러한 단점이 최소화됩니다.

1

이 주제는 꽤 오래되었지만 해결책을 찾기 위해 여러 번 보냈으므로이 질문에 답합니다. @ Zugwalt가 말한 것처럼 Java Robot 클래스를 사용할 수 있습니다. 그러나 Selenium Grid와 RemoteWebDriver를 사용하는 경우 jsch을 사용하여 원격 시스템에 대한 ssh 연결을 열고 xdotool을 호출하여 주어진 위치를 클릭 할 수 있습니다.

당신은 내가 방금 한이 Gist

+1

우리는 마지막으로 [Sikuli] (http://www.sikuli.org/)를 webdriver와 함께 사용하기 시작했으며, 우리를 위해 꽤 잘 작동했습니다. – JLau

관련 문제