【问题标题】:Robot Framework: Unable to run the Robot test case with variables that has unicode in the file机器人框架:无法使用文件中包含 unicode 的变量运行机器人测试用例
【发布时间】:2017-12-11 14:14:23
【问题描述】:

当我尝试运行以下脚本时出现错误:

UnicodeDecodeError: 'utf8' codec can't decode byte 0xa5 in position 63: invalid start byte

注意-我必须使用相同的变量,所以替代定位器 但是如果去掉日元符号它就可以正常工作-`如何修复它

***Settings***
Library    Selenium2Library

*** Variables ***
${DC_CURRENCY_SELECTOR_VERIFY}   xpath=//label[contains(text(),' ¥ 10')] 


***Test Cases***
Test browser
    open browser    http://google.com    chrome

【问题讨论】:

  • ...不要使用日元符号?
  • 该文件是一个 .robot 文件。并且必须使用日元
  • 您的 IDE 或文本编辑器很可能将文件保存为 ANSI 而不是 UTF8。检查 IDE 的编码选项。
  • 你成功了@FlorentB。你是冠军。有效 。谢谢

标签: python selenium-webdriver unicode robotframework


【解决方案1】:

您可以使用 Robot 框架提供的string keywords 对变量进行编码。我相信这样的事情会奏效:

${DC_CURRENCY_SELECTOR_VERIFY} =    Encode String To Bytes    ${DC_CURRENCY_SELECTOR_VERIFY}   ASCII    errors=ignore

【讨论】:

  • 我很好奇你为什么认为coding: utf-8 会起作用。在第一行查找编码不是机器人框架的文档化功能。
  • 你是对的。我在机器人框架文档中阅读了有关编码选项的存在,然后在我们在工作中使用的一些机器人脚本中快速查找它,该行出现在机器人文件的顶部,但显然它作为一个评论。我什至一开始都没有注意到这一点。我相应地编辑了我的答案。
猜你喜欢
  • 1970-01-01
  • 2013-01-23
  • 2019-03-15
  • 2017-11-14
  • 2016-05-03
  • 2019-10-25
  • 2018-02-23
  • 1970-01-01
  • 2021-02-10
相关资源
最近更新 更多