Robot Framework自动化测试:同一浏览器下多窗口切换问题咨询
多窗口切换问题解决方案
错误原因说明
Select Window关键字是SeleniumLibrary 4.0版本前的旧关键字,4.0及以上版本已正式移除,因此会提示关键字不存在,新版统一使用Switch Window关键字实现窗口切换- 使用
locator=NEW触发索引相同报错,是因为NEW定位符仅匹配「当前操作触发的最新打开窗口」,若当前浏览器存在多个非操作触发的已打开窗口,会出现匹配冲突
对应解决方法
操作触发新窗口后立即切换
新增等待逻辑确保窗口完全加载后再执行切换,避免识别异常
# 点击触发新窗口的元素 Click Element //*[@id="open_new_window_btn"] # 等待窗口加载完成 Sleep 2s # 切换到最新打开的窗口 Switch Window locator=NEW
切换到固定属性的已打开窗口
使用页面标题或URL定位,稳定性最高,不会出现索引冲突
# 通过页面标题切换 Switch Window locator=title:目标页面完整标题 # 或通过页面URL切换 Switch Window locator=url:https://example.com/target_page
按打开顺序切换窗口
先获取全部窗口句柄列表,再按索引指定切换,适配多固定窗口场景
# 获取所有窗口句柄,返回列表按打开顺序排序,索引从0开始 @{all_handles} Get Window Handles # 切换到第二个打开的窗口 Switch Window locator=${all_handles}[1] # 切回初始第一个窗口 Switch Window locator=${all_handles}[0]
内容的提问来源于stack exchange,提问作者Marc Cholvi Jaureguizar
相关产品推荐
相关产品推荐

