RSelenium从Javascript列表中选择Dropdown / ComboBox值

时间:2016-08-12 17:16:44

标签: javascript r selenium web-scraping rselenium

我正在尝试使用RSelenium从网站下载csv文件。我进入页面,这是一个Crystal Report Viewer,并选择导出按钮的元素,然后单击该按钮。然后会出现一个带有文件格式选择的导出窗口。我能够找到下拉列表的元素,但我遇到了列表值的问题。这些值似乎来自一个非常长的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代码中更新 - 我从Javascript列表中假设。单击“分隔值(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的。非常感谢提前。

0 个答案:

没有答案