2016-08-12 2 views
1

RSelenium을 사용하여 웹 사이트에서 CSV 파일을 다운로드하려고합니다. Crystal Report Viewer 인 페이지로 이동하여 내보내기 단추의 요소를 선택하고 해당 단추를 클릭합니다. 그런 다음 내보내기 창이 열리고 파일 형식이 선택됩니다. 드롭 다운 목록의 요소를 찾을 수 있지만 목록의 값에 문제가 있습니다. 값은 다음과 같이 매우 긴 자바 스크립트 스크립트에서 오는 것으로 나타났습니다 :RSelenium Javascript 목록에서 드롭 다운/콤보 상자 값 선택

<script type="text/javascript" language="JavaScript"> 
`{"args":` 

{"args":{"id":"CrystalReportViewer_exportUI","availableFormats":[{"name":"Crystal Reports (RPT)","value":"CrystalReports"},{"name":"PDF","value":"PDF"},{"name":"Microsoft Excel (97-2003)","value":"MSExcel"},{"name":"Microsoft Excel (97-2003) Data-Only","value":"RecordToMSExcel"},{"name":"Microsoft Word (97-2003)","value":"MSWord"},{"name":"Microsoft Word (97-2003) - Editable","value":"EditableRTF"},{"name":"Rich Text Format (RTF)","value":"RTF"},{"name":"Separated Values (CSV)","value":"CharacterSeparatedValues"},{"name":"XML","value":"XML"}]` `</script>

드롭 다운 상자는 다음과 같습니다 : 나는 관련 요소를 찾을 수 있어요

enter image description here 위의 드롭 다운 상자로 이동하십시오.

enter image description here

것은 내가 드롭 다운 메뉴를 보여줍니다 위의 목록을 클릭합니다. 값 중 하나를 선택하면서 HTML 요소를 살펴볼 때, 내가 선택한 값은 HTML 코드에서 업데이트됩니다. 자바 스크립트 목록에서 가정합니다. 내가 클릭 한 후이 "(CSV)을 구분 값"은 다음과 같습니다

<div id="id_name" class="icontext" style="white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:249px">Separated Values (CSV)</div>

내가 다음 코드를 사용하려고하지만 그것은 작동하지 않습니다 :이 읽을

WebElemFileFormat <- remDr$findElement(using = 'id', "id_name") WebElemFileFormat$clickElement() WebElemFileFormat$sendKeysToElement(list("Separated Values (CSV)"))

Selecting a javascript dropdown을 게시했는데 RSelenium으로 변환하는 방법을 모르겠습니다. 미리 감사드립니다.

답변

3

좀 더 연구를 한 후에 나는 이와 다른 경로를 가기로 결정했습니다. 누군가가 비슷한 문제를 겪을 경우를 대비해서 이것을 남겨 둘 것입니다. 드롭 다운 상자로 놀고 난 후 아래쪽 화살표 나 탭을 사용하여 목록을 아래로 내려갈 수 있다는 것을 알았습니다. 내가 탭이 아닌 아래쪽 화살표를 사용하기로 결정

`WebElemFileFormat <- remDr$findElement(using = 'id', "id_name") 
remDr$setImplicitWaitTimeout(milliseconds = 10000) 
WebElemFileFormat$clickElement() 
remDr$sendKeysToActiveElement(list(key = 'tab')) 
remDr$sendKeysToActiveElement(list(key = 'tab')) 
remDr$sendKeysToActiveElement(list(key = 'tab')) 
remDr$sendKeysToActiveElement(list(key = 'tab')) 
remDr$sendKeysToActiveElement(list(key = 'tab')) 
remDr$sendKeysToActiveElement(list(key = 'tab')) 
remDr$sendKeysToActiveElement(list(key = 'tab')) 
remDr$sendKeysToActiveElement(list(key = 'enter')) 
` 

공지 사항 :

은 내가 위의 문제에 원하는 것을 완료하려면 다음 코드를 사용했다. 아래쪽 화살표가 어떤 이유로 작동하지 않았습니다. 이 사람이 도움이되기를 바랍니다!

+0

비슷한 문제가 있지만 이름으로 드롭 다운 항목을 선택하고 싶습니다. 그것도 작동하지 않습니다. 귀하의 화살표의 관점에서 아마도 당신은 잘못된 이름을 작성했습니다. 'selKeys'를 입력하고 이름을보십시오; 화살표는'down_arrow' 등입니다. –

관련 문제