2016-11-01 1 views
0

Selenium Webdriver를 사용하여 시나리오를 자동화하고 있습니다. IE에서 셀레늄 자바 스크립트를 사용하여 버튼을 클릭하면 엑셀 파일 (image-popup에 표시됨)이 다운로드됩니다. 그러나 기본 위치에서 다운로드되도록 해당 막대의 "저장"옵션을 클릭해야합니다. 셀렌은 파일 다운로드 브라우저 팝업을 클릭하는 것에 대한 지원을 제공하지 않으므로, 나는 로봇 클래스 fuctionality를 사용해 보았습니다.Selenium과 함께 사용할 때 Robot 클래스가 작동하지 않는 ALT + S 키 누르기

내가 사용한 코드는 다음과 같습니다

driver.findElement(By.xpath("//*[@id='btnGenerateExtract']/span/span")).click(); 
    //some wait of 4 seconds 
    clickOnSave(); 

코드 clickOnSave()에 대한 :는 "저장"을 클릭 할 수 없습니다로

{ 
      Robot robot=new Robot(); 
      robot.setAutoDelay(250); 
      robot.keyPress(KeyEvent.VK_ALT); 
      Thread.sleep(1000); 
      robot.keyPress(KeyEvent.VK_S); 
      robot.keyRelease(KeyEvent.VK_ALT); 
      robot.keyRelease(KeyEvent.VK_S); 
} 

그러나이 작동하지 않습니다 선택권. 제안 하시겠습니까?

답변

0

. 대신

driver.findElement (By.xpath ("// * [@ id = 'btnGenerateExtract']/span/span")). 같은

사용 JavascriptExecutor,

executor.executeScript ("인수 [0] .click();", driver.findElement (By.xpath ("// * @ ID = 'btnGenerateExtract']/스팬 /스팬")));

나머지 로봇 또는 마우스 이벤트는 Robot 클래스를 사용하여 수행 할 수 있습니다.

0

"저장 또는 열기"메시지가 나타나면 브라우저를 중지하거나 기본 저장 위치를 ​​수동으로 지정할 수 있습니다.

링크 :이 문제는 스크립트의 사소한 변화에 해결되었습니다

https://superuser.com/questions/273372/how-to-get-ie8-to-auto-save-downloaded-files-to-a-specific-directory

+0

임시 수정이 될 수도 있지만 모든 유틸리티 사용자가 "regedit"에서 이러한 변경을 수행 할 것이라고 기대할 수는 없습니다. 이 시나리오를 처리 할 수있는 더 나은 방법을 원합니다. Pls가 제안합니다. – aman

관련 문제