【问题标题】:Robot Framework - Case sensitive机器人框架 - 区分大小写
【发布时间】:2013-06-08 18:14:58
【问题描述】:

我需要知道是否有解决此错误的方法:

当我使用以下关键字时:

  • 位置应该是
  • 位置应包含
  • (它们都是Selenium2Library的一部分。)

    我收到此错误: "位置应该是 'http://www.google.pt' 但原来是 'http://WwW.GooGLe.Pt'

    我认为这是因为机器人框架在比较字符串时天生就区分大小写。

    有什么帮助吗? 类型

    编辑 编辑问题以澄清一些主题。

    【问题讨论】:

    • 为什么问题不够清楚?并且因为不是问题而被关闭。我不明白。
    • 谁能重新打开这个问题?

    标签: testing webdriver selenium-webdriver functional-testing robotframework


    【解决方案1】:

    幸运的是,Robot Framework 允许用 python 编写关键字。

    我的图书馆.py

    ​​>
    def Compare_Ignore_Case(s1, s2):  
        if s1.lower() != s2.lower():
            return False
        else:
            return True
    
    def Convert_to_Lowercase(s1):
        return s1.lower()
    

    MySuite.txt

    | *Setting* | *Value*        |
    | Library   | ./MyLibrary.py |
    
    | *Test Case* | *Action* | *Argument*
    #
    | T100 | [Documentation] | Compare two strings ignoring case.
    |      | Compare Ignore Case | foo | FOO
    #
    | T101 | [Documentation] | Compare two strings where one is a variable.
                      # Should be Get Location in your case.
    |      | ${temp}= | MyKeyword that Returns a String
    |      | Compare Ignore Case | foo | ${temp}
    

    我没有使用过 Selenium 库,但是 T101 中的示例应该适合你。

    【讨论】:

    • 你把 MyLibrary.py 文件放在哪里了。都是同一个文件夹中的文件。我很困惑,因为您使用的是 ./MyLibrary.py 而不是 MyLibrary.py
    • @GauravJain 当您在MySuite.txt 中导入MyLibrary.py 时,| Library | ./MyLibrary.py | 中的路径应该是从MySuite.txtMyLibrary.py 的相对路径。在这种情况下,它们应该在同一个目录中。但是,如果 MyLibrary.py 位于名为 rf_keywords 的目录下,并且 rf_keywordsMySuite.txt 在同一目录中,则导入看起来像 | Library | ./rf_keywords/MyLibrary.py |
    • @GauravJain 另外,| Library | ./MyLibrary.py | 等价于 | Library | MyLibrary.py |
    • 那么哪个更好...我的意思是应该有一些小的/主要的差异或问题?你更喜欢哪一个?
    • @GauravJain 如果我有多个库,我会将它们全部放在一个目录下。否则,我会将库放在与套件相同的目录中。
    【解决方案2】:

    以防万一其他人想要这个:

    Location should be '${expectedUrl}' disregard case
        ${currUrl}    get location
        ${currUrl}    evaluate    "${currUrl}".lower()
        ${expectedUrl}    evaluate    "${expectedUrl}".lower()
        should be equal    ${currUrl}    ${expectedurl}
    
    Location should contain '${expected}' disregard case
        ${currUrl}    get location
        ${currUrl}    evaluate    "${currUrl}".lower()
        ${expected}    evaluate    "${expected}".lower()
        should contain    ${currUrl}    ${expected}
    

    【讨论】:

      猜你喜欢
      • 2021-05-20
      • 2019-08-12
      • 1970-01-01
      • 2017-09-02
      • 1970-01-01
      • 2016-12-16
      • 1970-01-01
      • 1970-01-01
      • 2020-09-22
      相关资源
      最近更新 更多