ai didi

RSelenium:从下拉列表中选择选项

转载 作者:行者123 更新时间:2023-12-01 13:40:17 24 4
gpt4 key购买 nike

我使用 RSelenium 填写网络表单。要从下拉列表中选择一个选项,我使用以下命令:

xpathoption <- paste0("//select[@id = '",samplepatient[p,'name'],"']/option[",samplepatient[p,'value'],"]")

optionelem <- remDrv$findElement(using = "xpath", xpathoption)
selectelem <- remDrv$findElement(using = "xpath"
, paste0("//select[@id = '",samplepatient[p,'name'],"']"))
optionelem$clickElement()
selectelem$screenshot(display = T)

我使用以下命令检查是否选择了正确的选项:
remDrv$findElement(using = "xpath", paste0("//select[@id = '",samplepatient[p,'name'],"']"))$getElementAttribute("value")[[1]]

我遇到的问题是 clickElement()命令运行两次,最后一个命令的结果发生变化。我还用 screenshot() 检查了结果.它还显示使用 clickElement() 时切换到了不同的选项。命令两次。

是否有不同的方式从下拉列表中选择选项,这不会造成这种行为?

我在 ubuntu 上使用 docker 和 firefox 3.0.1。

该表格来自我想使用的计算器。要打开表单本身,您需要先检查免责声明,如下所示:
remDrv$navigate('http://riskcalculator.facs.org/RiskCalculator/')

remDrv$findElement(using = "xpath", "//input[@id = 'chkDisclaimer']")$clickElement()
Sys.sleep(1)
remDrv$findElement(using = "xpath", "//input[@id = 'btnContinue']")$clickElement()
Sys.sleep(1)

免责声明后的一个可重现的例子是:
#select age group
optionelem <- remDrv$findElement(using = "xpath", "//select[@id = 'AgeGroup']/option[3]")
selectelem <- remDrv$findElement(using = "xpath", "//select[@id = 'AgeGroup']")
#first attempt
optionelem$clickElement()
selectelem$getElementAttribute("value")
# result = 3
#second attempt
optionelem$clickElement()
selectelem$getElementAttribute("value")
# result = 1

最佳答案

正如其中一条评论中提到的,该问题与 RSelenium 无关,而与使用的 docker 无关。我现在使用 chrome docker (standalone-chrome),它在下拉列表中选择一个选项时没有同样的问题。

关于RSelenium:从下拉列表中选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40891806/

24 4 0
文章推荐: f# - 与 DateTime.MinValue 进行模式匹配?
文章推荐: java - GWT CellList 渲染完成处理程序?
文章推荐: java - 如何删除 Action 监听器?
文章推荐: angularjs - Angular JS 表达式不评估
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com