我在从文件中读取列表变量时遇到问题.我有一个包含3个变量的文件(variables.py):
TEST1=212
TEST2=[111, 222, 333, 444, 555, 666]
TESTS3="sadasd"
Run Code Online (Sandbox Code Playgroud)
这两个${TEST1}和${TEST3}可访问(我从变量文件中的值),但是,当我尝试访问第二个变量@{TEST2}[2],我得到一个错误:
FAIL : Non-existing variable '@{TEST2}[2]'
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用文件中的变量,则只会发生这种情况.如果我在RIDE中创建列表变量,我可以轻松地访问它@{Variable}[{$index}]
如果我尝试这种语法:${TEST2}[2],我得到:
'[111, 222, 333, 444, 555, 666][2]'
Run Code Online (Sandbox Code Playgroud)
因此,机器人框架知道存在具有给定名称的变量,但不知道它是列表变量.难道我做错了什么?
我正在尝试学习机器人框架,我正在尝试匹配这样的正则表达式
TC should match
${escaped} = Regexp Escape Hello World
Should Match ${Hello World} ${escaped}
Run Code Online (Sandbox Code Playgroud)
其中,${Hello World} 是 Hello World(在变量表中声明)
当我运行此命令时,出现此错误。“'Hello World' 与 'Hello\ World' 不匹配”。我究竟做错了什么?。提前致谢。另外,我正在尝试匹配 [az]* 或 s+ d+ 之类的东西。我不能那样做。任何帮助表示赞赏
从RobotFramework中的关键字获取返回变量通常很容易,只需在关键字中放入一个返回值,并在变量后面运行关键字来存储返回值.
当我想有条件地运行该关键字时遇到问题.关键字Run Keyword If和Run Keyword Unless关键字都Wait Until Keyword Succeeds希望将关键字作为第一个参数,如果第一个参数是变量,则会抛出错误.
目前我正在通过在关键字中设置套件级变量来解决这个问题,我知道我将有条件地运行,但这感觉有些笨拙.更糟糕的是,我必须重构任何在最初设计时作为条件关键字不需要的关键字.当然,我可能永远不会使用返回变量,并且总是设置套件级变量,但这只会让我觉得很脏.
我还没有找到一个干净的方法来做到这一点.它有效,但我希望其他人找到更好的方法.
我正在使用机器人框架运行自动化 android 应用程序:我导入了 selenium2library 和 android 库。最初我使用 goto url 关键字启动应用程序:我将参数作为我的应用程序的 url 给出。运行测试脚本后,我得到 ::
Keyword 'Capture Page Screenshot' could not be run on failure:
Multiple keywords with name 'Capture Page Screenshot' found. Give
the full name of the keyword you want to use:
AppiumLibrary.Capture Page Screenshot
Selenium2Library.Capture Page Screenshot.
Run Code Online (Sandbox Code Playgroud)
如何解决。谁能告诉我一些解决方案。
我设计了这种架构,其中所有测试用例都在 Amazon.robot 文件中,机器人框架的所有低级关键字都将在两个单独的文件中(AmazonGui.robot 和 Commons.robot)
包含所有测试用例的 Amazon.robot 文件:
*** Settings ***
Documentation This is some basic infor the whole suite
Resource Resources/AmazonGui.robot
Resource Resources/Common.robot
*** Variables ***
*** Test Cases ***
User must sign in to check out
[Documentation] This is some basic info about test
[Tags] Smoke
Common.Begin Web Test
AmazonGui.Search for Products
AmazonGui.Select Product from Search Results
AmazonGui.Add Product to Cart
AmazonGui.Begin Checkout
Common.End Web Test
Run Code Online (Sandbox Code Playgroud)
我还有另外两个具有低关键字的资源文件,所以基本上测试用例(Amazon.robot)正在调用低级关键字文件(Common.robot 和 AmazonGui.robot)。我已将资源文件导入到测试用例文件中。
AmazonGui.robot 文件,包含用于测试用例的低级关键字
*** Settings ***
Library Selenium2Library
*** Keywords …Run Code Online (Sandbox Code Playgroud) 我在fedora中预装了python3,稍后安装了python2.使用后
pip install robotframework
Run Code Online (Sandbox Code Playgroud)
机器人已成功安装,但它安装在python 2.7/site-packages中.
有没有办法在python3中安装和使用它?或者,是否可以卸载python2,并在python3上重新安装机器人框架?
谢谢.
目前正在使用Robot Framework List.我有一个这样的列表['Thu 2/22/2018', ' ', '-', '0.0000', '0', '', 'Fri 2/23/2018', '0', '-', '0.0000', '0', '+20 hr 28 min', 'Sat 2/24/2018', '37', '37', '0.0000', '37', '-10 hr 23 min']我想将$ {SPACE},$ {EMPTY}和 - 值转换为'0'.我正在尝试下面的代码,但我收到这些错误
ValueError: Cannot convert index ' ' to an integer.
ValueError: Cannot convert index '-' to an integer.
ValueError: Cannot convert index '' to an integer.
Run Code Online (Sandbox Code Playgroud)
这是代码
:FOR ${x} IN @{OnlyList}
\ Log ${x} console=true
\ run keyword if '${x}'== '${SPACE}' Collections.set list value ${OnlyList} …Run Code Online (Sandbox Code Playgroud) 我在Windows服务器上使用Python 2.7,Robot Framework和Selenium2Library。
在具有按钮和数据文本框的页面上,我有一个硒测试,单击该按钮,这会触发一个get请求,并在返回时重新创建数据文本框并使用新值进行更新。然后测试睡眠10秒钟,以使这种情况发生,然后读取数据文本框中的值。
我真正想做的是获取数据文本框的元素,然后单击按钮并继续轮询原始数据文本引用以使其在DOM上不可用,即它已被重新创建,然后读取文本框以获取价值。
我无法终生发现如何使用Robot Framework和Selenium2Library做到这一点,因为所有调用都是自包含的,并且不会传递引用。
您能提供其他解决方案吗?
如何在Robot Framework中实现Gherkin数据表?
以下代码段应将两组(n,is_prime)参数传递给关键字,以便验证:
is_prime(5)=真
is_prime(6)=假
*** Test Cases ***
Function should verify prime number
Given I have a positive integer and is_prime() function
| n | is_prime |
| 5 | True |
| 6 | False |
When I check whether n is prime
Then is_prime() should verify this
Run Code Online (Sandbox Code Playgroud)
注意:这与场景大纲无关.我发现https://gist.github.com/Tset-Noitamotua/8f06bd490918a56b0485630016aef60b,并且可以使用机器人编写测试实例表.
这是一个Python函数,我用它来检查素数:
import math
def is_prime(num):
if num < 2:
return False
sqr = int(math.floor(math.sqrt(num)))
for i in range(2, sqr + 1):
if num …Run Code Online (Sandbox Code Playgroud) 我正在将Robot Framework与Java配合使用。我的问题是:在Robot Framework中执行断言的最佳方法是什么?我应该导入JUnit(或类似的库)并在自己的关键字中使用if声明吗?
是否有一个用于断言的关键字库?我的意思是一个包含如下关键字的库:
Assert True &{value_to_check}
Assert List Contains &{list_of_elements} &{element_to_find} # using java equals method
Run Code Online (Sandbox Code Playgroud)
谢谢!
robotframework ×10
python ×2
appium ×1
assertion ×1
automation ×1
file-upload ×1
gherkin ×1
installation ×1
java ×1
junit ×1
list ×1
python-2.7 ×1
regex ×1
robotium ×1
selenium ×1
variables ×1