标签: robotframework

Robot Framework Collections - 列表比较问题

我正在尝试比较 Robot Framework 中的两个相同列表。我正在使用的代码是:

List Test
    Lists Should Be Equal    @{List_Of_States_USA}    @{List_Of_States_USA-Temp}
Run Code Online (Sandbox Code Playgroud)

并且列表与以下值相同:

@{List_Of_States_USA}    Alabama    Alaska    American Samoa    Arizona    Arkansas    California    Colorado
...               Connecticut    Delaware    District of Columbia    Florida    Georgia    Guam    Hawaii
...               Idaho    Illinois    Indiana    Iowa    Kansas    Kentucky    Louisiana
...               Maine    Maryland    Massachusetts    Michigan    Minnesota    Mississippi    Missouri
...               Montana    National    Nebraska    Nevada    New Hampshire    New Jersey    New Mexico
...               New York    North Carolina    North Dakota    Northern Mariana Islands    Ohio    Oklahoma    Oregon
...               Pennsylvania    Puerto Rico    Rhode Island    South Carolina …
Run Code Online (Sandbox Code Playgroud)

python collections python-2.7 robotframework

1
推荐指数
1
解决办法
2万
查看次数

如何使用单个文件执行Robot Framework中的所有TestSuite

我是机器人框架的新手。我在不同的文件夹中编写了许多套件,并且想要执行它们,只需像我们在 Java TestNG 中使用 xml 文件那样执行单个文件即可。有什么办法吗,请帮帮我。我的框架结构是这样的:

Dir1
  TestSuite1
  TestSuite2
Dir2
  TestSuite1
  TestSuite1
Run Code Online (Sandbox Code Playgroud)

我想执行所有测试套件中的所有测试用例。谢谢

python selenium robotframework selenium-webdriver

1
推荐指数
1
解决办法
2万
查看次数

从包含多个文本的表格单元格中提取单个文本 Robot Framework

我有一个表,其中一些单元格有多个文本,每个文本都有自己的 xpath。例如,下面代码中的两个文本元素位于同一表格单元格中,但有两个 xpath :对于第一个“B17AA038”,xpath 为 // [ @id="profile_research"]/tbody/tr[1]/ td[10]/text() ,下一个实例有另一个 xpath (// [@id="profile_research"]/tbody/tr[1]/td[10]/div[2]/text())。在表中,我有一些单元格,其中一个单元格中包含许多单独的文本元素。我试图从单元格中选择一个特定的文本元素并将其用作变量,但到目前为止失败了。

举个例子,我尝试过这个:

Run keyword if  '${Row_No}'=='1'    get text    xpath=//*[@id="profile_research"]/tbody/tr[${Table_Row}]/td[10]/text()
Run Code Online (Sandbox Code Playgroud)

并收到此错误消息:

InvalidSelectorException: Message: invalid selector: The result of the xpath expression "//*[@id="profile_research"]/tbody/tr[2]/td[10]/text()" is: [object Text]. It should be an element.
Run Code Online (Sandbox Code Playgroud)

相关html如下:

<td style="word-wrap: break-word; min-width: 120px; max-width: 120px; white-space:nowrap;">

                                            <!-- sample level pandh_id-->

                                                <!-- test level pandh_id-->

                                                        **B17AA03**8&nbsp;<span class="badge badge-info" style="background-color: white; color:black; border:1px solid #808080; margin-bottom:2px; font-size:0.5em;">2</span>
                                                        <!-- hidden print div for add test to this sample-->
                                                        <div …
Run Code Online (Sandbox Code Playgroud)

python jquery xpath python-2.7 robotframework

1
推荐指数
1
解决办法
3926
查看次数

有没有办法将Robot Framework资源文件内容导入Python脚本?

显然,可以在某些 Python 脚本中导入 Python Robot Framework 库。然而,有没有一种神奇的方法可以在Python脚本中导入Robot Framework资源文件呢?资源文件是用 RF 语法编写的,因此需要一些专用的 Python 模块来导入它(实际上将 RF 语法翻译为 Python)。也许类似的东西已经存在,甚至可以使用一些 RF 内置模块,就好像我理解正确一样,在脚本执行期间 RF 语法被转换为 Python 调用。

2018年6月18日更新:

正如 A. Kootstra 所建议的,可以使用以下命令在 Python 脚本中导入 Robot 关键字:

from robot.libraries.BuiltIn import BuiltIn
BuiltIn().import_resource('${EXECDIR}/resource.robot') 
Run Code Online (Sandbox Code Playgroud)

但是,如何访问 Python 脚本中导入的 Robot 资源中的任何关键字?builtIn().import_resource 不会将任何处理程序返回到导入的库。

我会打电话

BuiltIn.call_method
Run Code Online (Sandbox Code Playgroud)

但它需要对象实例作为第一个参数。导入的资源文件也不存在于返回的字典中

globals()
Run Code Online (Sandbox Code Playgroud)

python import translate robotframework

1
推荐指数
1
解决办法
7507
查看次数

如果使用 pip --user 安装 robotsframework 则找不到 robots 命令

通过 CMD(Windows)执行机器人脚本时出现错误

“机器人”不被识别为内部或外部命令、可操作程序或批处理文件”

我的团队在 C:\Python27 文件夹中安装了 Python,并使用以下命令安装了 ROBOT 框架和所有必需的库

"python -m pip install -U setuptools --user, python -m pip install -U robotframework --user"
Run Code Online (Sandbox Code Playgroud)

我们无权在 C 盘安装任何内容,所有库均已成功安装。但是当我尝试通过 CMD 执行脚本时出现错误。

笔记:

  1. 所有机器人库都安装在“C:\Users\bab\AppData\Roaming\Python\Python27\site-packages”中

  2. 我确实使用上面的路径设置了环境变量

  3. 脚本通过 ECLIPSE 运行并使用以下命令

命令

C:\Python27\python.exe -m robot.run --listener C:\Users\bab\AppData    \Local\Temp\RobotTempDir2497069958731862237\TestRunnerAgent.py:61106 --argumentfile C:\Users\bab\AppData\Local\Temp\RobotTempDir2497069958731862237\args_c4fe2372.arg C:\Users\bab\Robot_Sframe\E2Automation
Run Code Online (Sandbox Code Playgroud)

请帮助我,因为这一步对于将我的脚本与 Jenkins 集成非常关键

robotframework

1
推荐指数
1
解决办法
5万
查看次数

如何修复“FOR 循环不包含关键字”。适用于操作系统的 Robot IDE 中出现错误

测试结果表明 for 循环不包含关键字

我尝试使语法尽可能符合用户指南。它不允许我在 FOR 之前添加“:”,并且它说在新版本中没有必要。

*** Settings ***
Test Teardown     Close Browser
Library           SeleniumLibrary
Library           Collections
Library           RequestsLibrary

*** Test Cases ***
links
    Open Browser    http://neuromorpho.org/neuron_info.jsp?neuron_name=DD13-10-c5-1    safari
    Maximize Browser Window
    ${AllLinksCount}=    Get Element Count    //a
    Log    ${AllLinksCount}
    @{LinkItems}    Create List
    FOR    ${INDEX}    IN RANGE    1    ${AllLinksCount}
    \ \    Log    ${INDEX}
    \ \    ${lintext}=    Get Text    xpath= (//a) [${INDEX}]
    \ \    Log    ${lintext}
    \ \    ${linklength}    Get Length    ${lintext}
    \ \    Run Keyword If    ${linklength} >1    Append To List    ${LinkItems} …
Run Code Online (Sandbox Code Playgroud)

for-loop keyword robotframework robotframework-ide

1
推荐指数
1
解决办法
4445
查看次数

找到多个同名关键字,但只有唯一关键字

*当我运行我的机器人测试时,它说找到多个名称为“设置变量值”的关键字。给出要使用的关键字的全名:step_definitions.Set Variable Value for variable_handler.Set Variable Value for 它对variable_handler.py中提到的所有关键字执行此操作

我缺少什么吗?我们需要给出包含该关键字的 python 文件的名称吗?* 网上找的不多。已在设置中添加了库。

    Variable_handler.py


    ```@keyword(name='Set Variable Value for')

        def Set_Variable_Value_for(tag, value):
        my_token_file = 'Resources/written_variables.yml'
        data = None
        with open(my_token_file, 'r') as testData:
            data = yaml.load(testData)
        data[tag] = value
        with open(my_token_file, 'w') as writeTestData:
            print(ruamel.yaml.dump(data, writeTestData, 
        Dumper=ruamel.yaml.RoundTripDumper))```


    step_definitions.py



    '''@keyword(name='Set Start Time for Test')

        def Test_Start_Time():
        tz = timezone('UTC')
        Time_Now = datetime.now(tz)
        naive_date = Time_Now.replace(tzinfo=None)
        Set_Variable_Value_for('START_TIME', naive_date)```

     Test.robot



    '''Create a New Member
        [Documentation] Add a New Member
        [Tags]  CreateMember  MemberAndProjectCreationFlow  SanityTest  
       All …
Run Code Online (Sandbox Code Playgroud)

automated-tests python-3.x robotframework

1
推荐指数
1
解决办法
7929
查看次数

如果Robot框架中不存在如何创建新的环境变量?

我正在尝试在机器人框架中创建一个新的环境变量。我用了

Set Environment Variable    ${myVar}    myVal
Run Code Online (Sandbox Code Playgroud)

我收到错误如下:

Variable '${myVar}' not found
Run Code Online (Sandbox Code Playgroud)

那么“设置环境变量”是用来替换现有的变量值吗?如果是这样,如何创建一个未定义的新变量?

robotframework

1
推荐指数
1
解决办法
5689
查看次数

有什么方法可以减少机器人框架中的套件设置/拆卸和测试设置/拆卸样板吗?

我正在从事一个变得相当大和复杂的项目。

在我们的机器人测试文件中,我们现在有几个套件设置/拆卸和测试设置/拆卸,用于处理第三方服务的生成模拟服务器、重置配置、覆盖随机值的生成,以便我们的测试输出保持可预测等。

由于每个测试文件都需要进行所有设置/拆卸,因此设置部分中的样板数量变得非常愚蠢。

减少此测试设置样板的“规范”方法是什么?我不能简单地将所有设置/拆卸语句收集到几个关键字中并使用它们,因为测试套件并不都有完全相同的要求。

例如,Robot Framework 中是否有任何方法可以让测试库(特别是 Python)添加安装/拆卸操作?这样我就可以在设置部分设置一些元数据,并让测试库根据需要添加设置/拆卸操作。

例如,我可以添加一个元数据标头,例如Metadata Uses services Twitter, Facebook,然后测试库将处理套件级别的设置/拆卸以生成和终止模拟服务器,以及测试级别的设置/拆卸以清理其状态。

python robotframework

1
推荐指数
1
解决办法
556
查看次数

机器人框架 - 如果文件存在则运行关键字

如果文件存在于文件系统中,如何在机器人框架中运行关键字?例如:

Run Keyword If    ${filename} exists    Delete File
Run Code Online (Sandbox Code Playgroud)

robotframework

1
推荐指数
1
解决办法
1万
查看次数