Robot Framework旧关键字报错‘No keyword with name xyz’求助
问题分析与解决
根本原因
你在csv_handler类中定义了两个同名的方法extract_text_from_CSV_file,Python中类的同名方法会直接覆盖前一个实现,导致原关键字Extract text from CSV file对应的方法被第二个方法替换,Robot Framework无法找到原关键字,从而抛出No keyword with name xyz错误。
解决步骤
修改第二个方法的函数名,确保两个方法名唯一:
将新增关键字对应的方法名从extract_text_from_CSV_file改为extract_text_from_created_CSV_file(或其他唯一名称)。修正后的代码示例:
import all library and key words import os # 新增方法用到了os模块,需显式导入 class csv_handler: @keyword("Extract text from CSV file") def extract_text_from_CSV_file(self, file_name): execution_mode = BuiltIn().get_variable_value("${EXECUTION_MODE}") download_folder = config_file[execution_mode]["download_folder"] userName = getpass.getuser() localUserName = userName.strip("adm-") download_folder = download_folder.replace("<local_user>", localUserName) data = [] with open(download_folder.strip() + file_name, 'r') as csvfile: reader = csv.reader(csvfile) for row in reader: data.append(row) return data @keyword("Extract text from created CSV file") def extract_text_from_created_CSV_file(self, file_name): # 此处修改方法名 execution_mode = BuiltIn().get_variable_value("${EXECUTION_MODE}") cwd = os.getcwd() upload_folder = cwd + config_file[execution_mode]["upload_folder"] userName = getpass.getuser() localUserName = userName.strip("adm-") upload_folder = upload_folder.replace("<local_user>", localUserName) data = [] with open(upload_folder.strip() + file_name, 'r') as csvfile: reader = csv.reader(csvfile) for row in reader: data.append(row) return data
- 额外检查项:
- 确认
csv_handler库已在Robot测试文件中正确导入 - 确保运行环境加载了修改后的代码(可重新启动测试运行进程)
- 确认
内容的提问来源于stack exchange,提问作者Satyajit Behera
相关产品推荐
相关产品推荐

