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

如何用RSelenium点击页面列表中第二个元素Consulta por Cuenta Contrato?

解决方案:用RSelenium实现目标元素点击

当然可以用RSelenium实现这个点击操作,你的代码主要有两个问题导致失效:

1. RSelenium初始化逻辑错误

你先用rsDriver()创建了驱动实例,随后又重新用remoteDriver()赋值覆盖了remDr,这会导致之前的驱动连接被断开,正确的做法是直接使用rsDriver()返回的client对象。

2. 元素定位方式不可靠

mat-radio-3这类Angular生成的ID是动态的,刷新页面后可能会变化,改用基于元素文本或稳定属性的定位方式更可靠。

修正后的完整代码

library(RSelenium)
library(wdman)

# 初始化RSelenium驱动
driver <- rsDriver(port = 4445L, browser = "firefox")
remDr <- driver$client

# 打开浏览器并导航到目标页面
remDr$open()
remDr$navigate("https://nodejs.eeq.com.ec/consultafacturas/proceso/formulario-ingreso")

# 等待页面加载(建议用显式等待替代Sys.sleep,更稳定)
Sys.sleep(3)

# 通过元素文本定位目标单选框
webElem <- remDr$findElement(using = "xpath", "//label[contains(text(), 'Consulta por Cuenta Contrato')]/preceding-sibling::input[@type='radio']")

# 执行点击操作
webElem$clickElement()

# 后续操作完成后关闭驱动(按需启用)
# remDr$close()
# driver$server$stop()

额外优化建议

  • 尽量用显式等待替代Sys.sleep(),避免因页面加载速度慢导致的失败:
# 等待元素出现并可点击,超时时间10秒
remDr$waitForElement(using = "xpath", "//label[contains(text(), 'Consulta por Cuenta Contrato')]/preceding-sibling::input[@type='radio']", timeout = 10000)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 10:52:20