gpt4 book ai didi

javascript - RSelenium 从 Javascript 列表中选择下拉列表/组合框值

转载 作者:行者123 更新时间:2023-11-30 11:52:59 27 4
gpt4 key购买 nike

我正在尝试使用 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。非常感谢。

最佳答案

在做了更多研究之后,我决定对此采取不同的路线。如果有人遇到类似问题,我会保留它。我注意到在使用下拉框后,我可以使用向下箭头或选项卡在列表中向下移动。

我使用下面的代码来完成我在上面的问题中想要做的事情:

`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'))
`

请注意,我决定使用制表符而不是向下箭头。由于某种原因,向下箭头不起作用。我希望这对某人有帮助!

关于javascript - RSelenium 从 Javascript 列表中选择下拉列表/组合框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38923316/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com