RSelenium从Javascript列表中选择下拉列表/组合框值
我试图从使用RSelenium的网站下载csv文件。我到达Crystal Report Viewer页面,然后选择导出按钮的元素并单击该按钮。然后出现带有文件格式选择的导出窗口。我能够找到下拉列表的元素,但我遇到了列表值的问题。该值似乎是从一个很长的javascript脚本来像下面这样: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>
下拉框中如下所示:
当我点击下拉菜单,上面显示的列表。当我在选择其中一个值时查看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。提前谢谢了。
在做了一些更多的研究后,我决定采用不同的方法。如果有人遇到类似问题,我会保留这一点。我注意到,在使用下拉框后,我可以使用向下箭头或制表符向下移动列表。
我用下面的代码来完成我想要的东西在上面的问题:
`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'))
`
请注意,我决定使用标签,而不是向下的箭头。由于某种原因,向下箭头不起作用。我希望这可以帮助别人!
我有类似的问题,但要按名称选择下拉项目。它也不起作用。就你的箭头而言,也许你写了错误的名字。输入'selKeys'并查看名称;箭头是“down_arrow”等。 –