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

如何循环点击相似元素并在新标签页点击下载链接?Window Handle疑问

循环点击相似元素并处理新标签页下载的解决方案

一、循环定位所有相似元素

你录制的命令用了固定的.id-4021515650选择器,这会导致只能定位单个元素。要实现循环,需要改用通用选择器匹配所有外观相似的元素:

  • CSS选择器:css=.history-list__row .data-column.exercise-link
  • XPath选择器:xpath=//div[@role='listitem' and contains(@class,'history-list__row')]//div[@class='data-column exercise-link']

二、动态处理新标签页的窗口句柄

固定的handle=${win2368}确实不可靠,每次运行都会生成新的唯一句柄,必须通过动态获取所有窗口句柄来切换:

完整命令流程示例

# 1. 保存原窗口句柄
store window handle | root

# 2. 获取所有目标元素的数量
store | css=.history-list__row .data-column.exercise-link | elements
store | ${elements}.length | total_count

# 3. 循环遍历每个元素
for | ${i} | 0 | ${total_count}
    # 点击第i+1个元素(索引从0开始)
    click | xpath=(//div[@class='data-column exercise-link'])[${i}+1]
    
    # 获取当前所有窗口句柄
    store window handles | all_handles
    
    # 计算新窗口的索引(最后一个就是刚打开的标签页)
    store | ${all_handles}.length - 1 | new_handle_idx
    
    # 切换到新标签页
    select window | handle=${all_handles[${new_handle_idx}]}
    
    # 执行下载操作(替换成你的下载链接选择器)
    click | css=你的下载链接选择器
    
    # 关闭新标签页
    close window
    
    # 切回原窗口,继续循环
    select window | handle=${root}
end

关键说明

  • 循环时用for语句遍历所有元素,避免硬编码单个元素的定位符
  • 每次打开新标签页后,通过store window handles获取所有句柄,新窗口的句柄总是列表的最后一项
  • 操作完成后必须切回原窗口,否则下一次点击会在错误的页面执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 14:38:13