2010-07-19 6 views
2

우리는 Selenium 테스트를 Selenium-Grid로 변환하고 있습니다.Selenium-Grid :`user-extensions.js` 사용법

내가 전에 만들었던 user-extensions.js을 사용할 수 있도록 셀레늄 그리드의 허브 및/또는 리모컨을 시작하는 방법을 찾으려고합니다. 확장 기능을 제외하고는 이전 테스트로 모든 것을 처리 할 수있었습니다.

온라인 검색 셀레늄 그리드 루트 디렉토리에서 project.properties 파일을 편집하고 user_extension_file 속성을 추가하여 user-extensions.js를 가리킬 수 있음을 발견했습니다.

user_extension_file=${basedir}/user-extensions.js 

또한 해당 속성의 값에 대한 상대 경로와 절대 경로를 사용해 보았지만 그 중 아무 것도 작동하지 않았습니다. 허브의 루트 셀레늄 그리드 폴더와 RC의 루트 셀레늄 그리드 폴더에 추가하려고했습니다.

누구든지이 작업을 수행하는 방법을 알고 있습니까? 감사.

답변

4

좋아, 나는 (결국)이 알아 냈어. 개미 작업을 사용하여 원격 제어를 시작하면 다음 작업을 수행 할 수 있습니다.

ant launch-remote-control -DseleniumArgs="-userExtensions path/to/user-extensions.js" ... 

매력처럼 작동합니다. :)

1

setExtensionJs을 사용해 보셨습니까?

기본적으로 확장 프로그램 Javascript는 브라우저가 시작되기 전에 지정되어야하며 세션이 닫힐 때까지 인 플레이 상태를 유지해야합니다. 에서

selenium = new DefaultSelenium('localhost', 4444, '*firefox', 'http://alistapart.com'); 
def extensionJs = new File('selenium-core/src/main/resources/core/scripts/ui-map-sample.js').text; 
selenium.setExtensionJs(extensionJs); 
selenium.start(); 
selenium.open('http://alistapart.com'); 
selenium.click('ui=allPages::section(section=topics)'); 
selenium.waitForPageToLoad('5000'); 
selenium.stop(); 

: http://ttwhy.org/home/blog/2008/05/14/selenium-rc-per-session-extension-javascript/

+1

블로그에 대한 마지막 코멘트는 "이 SetExtensionJS() 인터페이스를 사용하려는 모든 사용자를위한 것입니다.이 기능을 사용하여 user-extensions.js로 할 수있는 것처럼 Selenium 명령을 만들 수 없습니다 왜냐하면 SetExtensionJS()가 코드를 삽입하기 전에 명령 핸들러를 등록하는 코드가 실행되기 때문입니다. " 그게 내가하려는거야. 어쨌든이 접근법을 시도했지만 효과가 없었습니다. – Joel

+0

@Joel : 네, 그 의견은 제 것이 었습니다. selenium-api.js 명령 처리기 전체가 실제로 user-extensions.js로 수행 할 수있는 작업을 제한합니다. –