You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RSelenium无法通过向下键滚动选择,如何选中Weekly选项?

解决RSelenium无法选中“Weekly”选项的问题

问题分析

直接在Chrome中点击时间框架选择器后按一次向下键再回车可以选中“Weekly”,但RSelenium中无法复现该操作,核心原因是下拉菜单弹出后,焦点未自动定位到选项列表,导致向body发送按键事件无法作用于目标选项。此外,页面可能存在的Cookie弹窗也会干扰元素交互。

解决方案

放弃依赖键盘按键操作,改为直接定位“Weekly”选项元素并点击,同时添加Cookie弹窗处理和元素滚动逻辑,提升稳定性:

link <- "https://www.investing.com/commodities/copper-historical-data"
rD <- rsDriver(browser="chrome", verbose=F, chromever = "108.0.5359.22")
remDr <- rD[["client"]]
remDr$navigate(link)

# 处理Cookie弹窗(若存在)
tryCatch({
  cookie_btn <- remDr$findElement(using = "css", value = "#onetrust-accept-btn-handler")
  cookie_btn$clickElement()
}, error = function(e) {
  # 无弹窗时跳过
})

# 定位时间框架选择器并滚动到可见区域
time_frame <- remDr$findElement(using = 'id', value = 'history-timeframe-selector')
time_frame$executeScript("arguments[0].scrollIntoView(true);")
time_frame$clickElement()

# 等待下拉菜单加载,然后定位并点击“Weekly”选项
Sys.sleep(1)
weekly_option <- remDr$findElement(using = "xpath", value = "//li[text()='Weekly']")
weekly_option$clickElement()

# 后续操作...

# 关闭浏览器
remDr$close()
rD$server$stop()

关键改进点

  • 直接定位目标元素:通过XPath精准匹配“Weekly”选项文本,避免依赖焦点和键盘事件的不确定性
  • Cookie弹窗处理:防止弹窗遮挡元素导致交互失败
  • 滚动到可见区域:确保元素在视窗内,避免点击失效
  • 等待加载:添加短暂等待确保下拉菜单完全渲染

内容的提问来源于stack exchange,提问作者Jovan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 04:31:29