RSelenium从Javascript列表中选择下拉列表/组合框值
我正在尝试使用RSelenium从网站下载csv文件。我进入页面,这是一个Crystal Report Viewer,选择export按钮的元素并单击该按钮。然后出现一个导出窗口,其中包含一个文件格式选择。我能够找到下拉列表中的元素,但列表的值有问题。这些值似乎来自一个非常长的javascript脚本,如下所示:RSelenium从Javascript列表中选择下拉列表/组合框值,javascript,r,selenium,web-scraping,rselenium,Javascript,R,Selenium,Web Scraping,Rselenium,我正在尝试使用RSelenium从网站下载csv文件。我进入页面,这是一个Crystal Report Viewer,选择export按钮的元素并单击该按钮。然后出现一个导出窗口,其中包含一个文件格式选择。我能够找到下拉列表中的元素,但列表的值有问题。这些值似乎来自一个非常长的javascript脚本,如下所示: <script type="text/javascript" language="JavaScript"> `{"args":` `{“args”:` {“args”
<script type="text/javascript" language="JavaScript">
`{"args":`
`{“args”:`
{“args”:{“id”:“CrystalReportViewer_exportUI”,“availableFormats”:[{“名称”:“CrystalReports(RPT)”,“值”:“CrystalReports”},{“名称”:“PDF”,“值”:“Microsoft Excel(97-2003)”,“值”:“MSExcel”},{“名称”:“仅Microsoft Excel(97-2003)数据”,“值”:“RecordToMSExcel”},{“名称”:“Microsoft Word(97-2003)”,“值”:“MSWord”},{“名称”:“Microsoft Word(97-2003)-可编辑”,“值”:“可编辑RTF”},{“名称”:“富文本格式(RTF)”,“值”:“RTF”},{“名称”:“分隔值(CSV)”,“值”:“CharacterSeparatedValues”},{“名称”:“XML”,“值”:“XML”}]`
`
下拉框如下所示:
<script type="text/javascript" language="JavaScript">
`{"args":`
我能够找到与上述下拉框相关的元素
当我单击下拉菜单时,上面的列表显示。当我在选择其中一个值的同时查看HTML元素时,我选择的值在HTML代码中得到更新——我是从Javascript列表中假设的。单击“分离值(CSV)”后,看起来如下所示:
分隔值(CSV)
我尝试使用以下代码,但不起作用:
WebElemFileFormat在做了更多的研究之后,我决定使用另一种方法。我会保留这个,以防有人遇到类似的问题。我注意到,在使用下拉框后,我可以使用向下箭头或标签向下移动列表
我使用以下代码完成了我想在上述问题中完成的内容:
`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'))
`
`WebElemFileFormat我也有类似的问题,但希望按名称选择下拉项。它也不起作用。就箭头而言,可能您写错了名称。键入selKeys
并查看名称;箭头是向下箭头
,等等。