RobotFramework自定义Xpath变量提示Variable not found问题咨询
问题原因及解决方法
- 变量定义语法错误
RobotFramework的*** Variables ***区块要求变量名、等号、变量值三者之间必须保留至少一个空格分隔,你当前的写法${MAIN_FOLDER}=//span[text()=" AutomationTestFolder "]没有在等号两侧加空格,属于语法错误,系统无法成功识别${MAIN_FOLDER}变量,这是触发变量未找到报错的核心原因。
- 变量定义语法错误
- 定位器前缀缺失
就算变量定义正确,你原变量中只存储了XPath路径本体,没有加xpath=前缀,SeleniumLibrary默认会把无前缀的定位器当做id/name属性匹配,无法正常识别为XPath定位规则。
- 定位器前缀缺失
- 自定义关键字参数不匹配
如果你使用的open context menu是自定义封装的关键字,需要检查该关键字的参数列表是否正确定义了入参,如果内部硬编码引用了不存在的${CUSTOM_VARIABLE},也会触发对应报错。
- 自定义关键字参数不匹配
- 特殊字符转义错误
你示例代码中的"是HTML格式的转义双引号,实际编写RobotFramework用例时直接使用普通双引号"即可,错误转义也可能导致变量值不符合预期。
- 特殊字符转义错误
修正后的可运行代码示例
*** Variables *** # 等号两侧加空格,同时提前把xpath=前缀存入变量 ${MAIN_FOLDER} xpath=//span[text()=" AutomationTestFolder "] # 这里替换为你自己的FRAME实际定位值 ${FRAME} 你的frame定位器 *** Keywords *** Folder tear down navigate to process designer wait until element is visible ${FRAME} 180s select frame ${FRAME} wait until element is visible ${MAIN_FOLDER} click element ${MAIN_FOLDER} open context menu ${MAIN_FOLDER} wait until element is visible xpath=//li[a[contains(@data-selected-option, "DELETE")]] 10s click element xpath=//li[a[contains(@data-selected-option, "DELETE")]] wait until element is visible xpath=//button[contains(@class, "btn-modal btn-modal-primary hide-focus")] click element xpath=//button[contains(@class, "btn-modal btn-modal-primary hide-focus")]
自定义关键字open context menu的正确封装示例
*** Keywords *** open context menu [Arguments] ${locator} # 这里写你封装的具体逻辑,直接引用入参${locator}即可 move to element ${locator} click element ${locator} modifier=CONTROL # 其他你自己的逻辑
内容的提问来源于stack exchange,提问作者Orl13
相关产品推荐
相关产品推荐

