2013-02-08 3 views
1

Alt + Click을 사용하여 Firefox의 "다른 이름으로 대상 저장"을 시도하고 있습니다. 이 기능은 파이어 폭스에서 직접 작동 할 때 작동합니다 (Firefox 설정을 업데이트하여 Alt + 클릭으로 대상을 다른 이름으로 저장 가능). Selenium IDE에서 시도 할 때 AltKeyDown() 함께 Click 이벤트를 선행 할 때 동일한 기능을 복제하지 않습니다.Selenium IDE : AltKeyDown() + "클릭"대상 저장 안함

<tr> 
    <td>clickAndWait</td> 
    <td>id=ctl00</td> 
    <td></td> 
</tr> 
<tr> 
    <td>altKeyDown</td> 
    <td></td> 
    <td></td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>link=Document</td> 
    <td></td> 
</tr> 

답변

3

수 없습니다.

Selenium IDE의 전원은 지원되며 JavaScript로 제한됩니다.

따라서 Selenium IDE (및 이전 Selenium 엔진 인 Selenium RC)에서 수행하는 모든 동작은 "단지"JavaScript이며 동일한 기능을가집니다. 분명히 인터넷에있는 페이지가 브라우저에서 모든 파일을 다운로드하도록 강제 할 수 있기 때문에 페이지에 JS를 실행하여 "다른 이름으로 대상 저장"을 강요 할 수 없습니다. 보안 구멍이 될 수 있습니다.

또한 JS와 함께 버튼을 눌러 OS 레벨 이벤트로 만들면 Firefox에서 "듣게"만들 수 없습니다. JS에 의해 수행 될 때, 페이지에있는 다른 JS 스크립트를위한 문서 레벨 이벤트 인 "그냥"입니다.

이 제한 사항으로 인해 셀렌 개발자는 브라우저와의 상호 작용을 사용하는 Selenium WebDriver (Selenium 2라고도 함)를 선호하여 Selenium RC를 포기하게되었습니다. 신뢰성있는 방법으로 But even that can't yet download files.

은 고급 사용자 상호 작용의 API and will work on most browser and OS combinations out there (자바 예) 간단한 감사를 WebDriver의 Alt 키 키와 클릭을한다 누르면 말했다 :

new Actions(driver) 
    .keyDown(Keys.ALT) 
    .click(driver.findElement(By.id("ctl00"))) 
    .keyUp(Keys.ALT) 
    .perform(); 

당신의 조합은 아직 지원되지 않는 경우,이 작업 것 에뮬레이트 된 키 프레스 만 내보내고 Firefox는 다시들을 수 없습니다. 이 경우 해당 언어를 처리 할 언어 도구가 필요합니다 (예 : Java의 Robot 클래스).

또한 기존 테스트 스크립트를 IDE에서 WebDriver와 유사한 Java 또는 C# 코드로 쉽게 내보낼 수 있습니다.