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

Robot Framework Selenium 从字典取key报错'Dictionary '@{alias}' has no key '1''如何解决

问题解决说明

错误信息Dictionary '@{alias}' has no key '1'的核心原因是你混淆了字典和列表的访问语法,且对Get Browser Aliases的返回值类型认知错误:

  • Get Browser Aliases返回的是字典对象,你已经用字典变量&{alias}接收了,字典的键是你自定义的浏览器别名(也就是你设置的ChromeRCV、RCVFF),值是对应的浏览器索引编号
  • 你后续用列表访问语法@{alias}[1]尝试用数字下标访问字典,字典不存在名为1的键,所以触发报错

方案1:直接使用别名作为字典键访问

如果你要切换到火狐浏览器,直接用别名当键取值即可,对应修改两处错误代码:

# 原错误代码1:Log  @{alias}[1]
Log  &{alias}[RCVFF]
# 原错误代码2:Switch Browser  @{alias}[1]
Switch Browser  &{alias}[RCVFF]

方案2:用浏览器ID列表的索引访问

Get Browser Ids返回的才是索引列表,可以直接用数字下标访问,如果你要按索引切换,修改切换浏览器的代码即可:

# 直接用浏览器ID列表的索引切换
Switch Browser  @{browser_ID}[1]

修正后可运行完整代码

*** Settings ***
Library  SeleniumLibrary

*** Variables ***
${url}  http://google.com
${browser}  chrome

*** Test Cases ***
TC to demostrate Browser Operation Keywords in Robot Framework
    [Documentation]  TC to demostrate Browser Operation Keywords in Robot Framework

    Open Browser  http://google.com  Chrome  alias=ChromeRCV
    Maximize Browser Window
    Open Browser  about:blank  ff  alias=RCVFF

    &{alias}  Get Browser Aliases
    # 修正:用字典键访问打印火狐对应的浏览器索引
    Log  &{alias}[RCVFF]

    @{browser_ID}  Get Browser Ids
    Log  @{browser_ID}[1]

    Switch Browser  1
    Input Text  //*[@id="tsf"]/div[2]/div[1]/div[1]/div/div[2]/input  RCVAcademy
    Sleep  4s

    # 修正:用字典键取值切换到火狐浏览器
    Switch Browser  &{alias}[RCVFF]
    Go To  http://salesforce.com
    Close All Browsers

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:27:04