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

如何用RSelenium定位并点击Migusto网站的加载更多食谱按钮?

解决RSelenium点击Migusto网站「mehr Rezepte」按钮的问题

你代码里有两个关键问题导致无法成功触发按钮点击,我来帮你修正并解释清楚:

问题1:元素定位参数使用错误

你用了using = 'class',但value写了.icon-right——这里的.是CSS选择器的语法标记,而class定位的value只需要填写纯类名(不能带.)。如果想保留带.的写法,应该把using参数改成'css selector'。

问题2:点击方法未实际执行

clickElement后面缺少括号(),这会导致你只是引用了方法对象,而没有真正调用它执行点击操作。

修正后的代码方案

这里提供两种可靠的定位方式,你可以根据实际情况选择:

方案1:修正class定位的写法

rD <- rsDriver(browser = 'chrome', port = 427L, chromever = '87.0.4280.88')
remDr <- rD$client
remDr$navigate('https://migusto.migros.ch/de/rezept-uebersicht/mexiko')

# 去掉class value里的.,保留纯类名
load_btn <- remDr$findElement(using = 'class', value = 'icon-right')
# 加上括号,执行点击方法
load_btn$clickElement()

方案2:用XPath按按钮文本定位(更精准)

如果页面中有多个带icon-right类的元素,直接通过按钮文本定位能确保选中目标按钮:

rD <- rsDriver(browser = 'chrome', port = 427L, chromever = '87.0.4280.88')
remDr <- rD$client
remDr$navigate('https://migusto.migros.ch/de/rezept-uebersicht/mexiko')

# 先等待按钮加载完成,避免页面异步加载导致元素找不到
remDr$waitForElement(using = 'xpath', value = "//button[contains(text(), 'mehr Rezepte')]", timeout = 10000)

# 通过按钮文本定位目标元素
load_btn <- remDr$findElement(using = 'xpath', value = "//button[contains(text(), 'mehr Rezepte')]")
load_btn$clickElement()

额外提示

  • 建议添加waitForElement等待元素加载,这能有效避免页面未完全加载时出现的「元素未找到」错误。
  • 如果单一class定位不够精准,可以尝试组合多个属性(比如class+文本)来定位元素,提升稳定性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:19:50