标签: robotframework

如何使Robot Framework函数接受参数作为字符串而不是默认的unicode类型

我正在编写一个新的RF库,需要使用字符串参数,因为我使用的(预先存在的)Python库需要字符串,而不是unicode.当然,我可以在调用仅支持字符串的现有函数之前将每个unicode转换为字符串.

import ConfigParser

class RFConfigParser:

def get (self,section, option):
    print type (section) #prints unicode
    section = str (section) #works but I dont want to do this
    return self._config.get (section, option) #this pre-existing function expect a string input
Run Code Online (Sandbox Code Playgroud)

问题是我有很多类似的函数,在每个函数中我都要将这个unicode称为字符串转换马戏团.

有没有直接的方法这样做,因此RF功能将直接接受字符串格式

另一个问题是默认的unicode支持Robot Framework功能还是RIDE功能?(我正在使用RIDE,这就是我遇到这个问题的原因)

python unicode configparser robotframework

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

"机器人框架"的"字符串库"中的"生成随机字符串"关键字,用于分配给变量

我需要生成随机数并将其分配给变量一次,以便以后多次使用它.我找到了关键字,Generate Random String但我不知道如何将它应用于我的案例.

testing random automation browser-automation robotframework

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

机器人框架获取文本

我正在使用python使用Robot Framework Selenium。我需要获取字符串的特定部分的帮助,而无需获取外部库。可以说文本说“您产品的价格范围是$ 0- 400”,所以我希望能够得到400,并且粘贴在测试中的其他位置。这个数字并不总是400,有时可能是55或其他不同的数字。因此,我认为我需要一个从美元符号开始的GET TEXT,计算两个空格并取走剩下的所有内容。或者我可以得到第一个数字并加上10。像在此示例中的0一样,所以我希望它粘贴10。请让我知道!

robotframework

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

使用机器人框架在没有iframe id的情况下查找iframe内的元素

HTML看起来像这样

<iframe src="/apex/cscfga__ConfigureProduct?linkedId=a0W8E000000Lpa5UAC&amp;configId=a0Z8E000000NBGMUA4&amp;retURL=/a0W8E000000Lpa5UAC&amp;isdtp=vw" width="100%" height="100%" onload="hideLoading()" frameborder="0" style="height: 737px;"></iframe>
Run Code Online (Sandbox Code Playgroud)

如果没有id,选择框架不起作用.我的机器人脚本应该如何识别这个iframe(没有id)?

我的脚本看起来像

${Iframe}=  Execute Javascript  
window.document.getElementsByTagName('iframe')[2]
log ${Iframe}   
Run Code Online (Sandbox Code Playgroud)

但它返回'无'

请建议如何识别此iframe.

iframe robotframework

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

如何在机器人框架中的for循环期间检查变量是否在列表中?

第一次在这里发帖 我有一种感觉,这是一个非常愚蠢的问题,但由于某些原因,我的代码一直在失败,我只是无法指出错误.

这就是我所拥有的:

*** Settings ***
Library  Selenium2Library
Library  OperatingSystem
Library  String
Library  Collections


*** Test Cases ***
Test Robot Framework Logging
    @{ALLOWED}=  Create List  /page1  /page2  /page3
    ${ControllersList}=  Get File   ${EXEC_DIR}/Resources/controllers.txt
    @{PAGES}=  Split to lines  ${ControllersList}
    :FOR  ${PAGE}  IN  @{PAGES}
    \  Run Keyword If  '${PAGE} IN @{ALLOWED}'  Log  Testing  WARN
    [Teardown]  Close Browser
Run Code Online (Sandbox Code Playgroud)

这是输出:

Evaluating expression ''/page1 IN [u'/page1', u'/page2', u'/page3']'' failed: SyntaxError: invalid syntax (<string>, line 1)
Run Code Online (Sandbox Code Playgroud)

如果我将条件更改为类似的东西,它会起作用:

'${PAGE} == /page1'
Run Code Online (Sandbox Code Playgroud)

我检查了文档,似乎可以使用IN条件.我完全迷失在这里.任何提示?谢谢!

robotframework

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

RobotFramework:在RobotFramework中定义Python关键字

早上好,

我在RobotFramework文档中看到可以直接在python中创建关键字(http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#creating-user-keywords)

例如do_nothing函数.

def hello(name):
    print "Hello, %s!" % name

def do_nothing():
    pass
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但问题是必须在变量PYTHONPASS或包含该文件的目录中添加.

问题是测试可以在多台计算机上执行,这意味着应该在每台应该运行测试的计算机上修改此变量.

第二点,不幸的是我的文件将在几个目录中使用.

例如:

A
A/B
A/B/C   <== use here
A/B/D
A/B/E   <== use here
...
Run Code Online (Sandbox Code Playgroud)

一个......

例如,是否可以直接在A级添加一次功能?

或者是否可以在A目录级别的RobotFramework关键字部分添加一次,并直接在C和E机器人文件中引用它:

A/lib.robot:
*** Keywords ***
def hello(name):
    print "Hello, %s!" % name

def do_nothing():
    pass

C and E:
*** Settings ***
Resource    ../../A/lib.robot
Run Code Online (Sandbox Code Playgroud)

robotframework

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

如何将机器人测试用例中的整数列表传递给后端java函数或方法?

机器人测试:

${SomeList} Create List  70  30  50
Run Code Online (Sandbox Code Playgroud)

JAVA代码:

@RobotKeyword
public void myJavaMethod(List<Integer> someList)
Run Code Online (Sandbox Code Playgroud)

这里,问题被认为你把列表的类型放在Integer中,它只在String中解释.如何将其作为整数列表传递?

java robotframework robotframework-ide

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

RobotFramework,为每个套件执行不同的拆卸操作

*** Settings ***
Suite Teardown  Perform suite teardown

*** Keywords ***
Perform suite teardown
    Log to console          Test suite cleanup
    cleanUp                 ${a}  ${b}  ${c}

*** Test Cases ***
TEST 1
    do some action

TEST 2
    do another action
Run Code Online (Sandbox Code Playgroud)

上面的代码运行良好,并运行套件拆卸.我有一个场景,我想为每个测试用例运行不同的拆卸操作,我怎么能修改上面的例子来做到这一点?

robotframework

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

Robotframework:Selenium2Lib:等到(...)关键字

我正在使用Selenium2 w RF来测试相当复杂的Web应用程序的GUI.由于我确实遇到了一些带有元素加载的失败,想知道关键字之间有什么区别:

等到元素启用 定位器 等待元素是可见 定位器 等待直到页面包含元素 定位器

当我想检查页面元素是否已满载并准备使用时,每个关键字的哪个以及哪个关键字最可靠?是否有关键字检查是否加载了整页?

selenium keyword robotframework selenium-webdriver

0
推荐指数
2
解决办法
4412
查看次数

如何在机器人框架中传递默认的可变参数?

我需要在机器人框架中传递默认的可变参数。通常在python中,我们会将参数初始化为 None以完成任务,但我不确定如何在机器人framework.PFB中传递相同的功能:

Number of users involved
[Arguments]  ${user1}  ${user2} ..... .... ....  .....  ..... ${userN}
Run Code Online (Sandbox Code Playgroud)

在上述场景中,我需要给默认可变参数说到N。该场景要求我将在第一步中定义所有参数,以便每当我为2个用户,3个用户,4个用户使用关键字时,我不会每次都更改或在相应测试用例中有N个用户。

PF我们将如何调用该关键字:

 Number of users involved  ABC XYZ  --> 1st scenario
 Number of users involved  ABC XYZ GFH ABC ......  --> 2nd scenario
Run Code Online (Sandbox Code Playgroud)

我的问题如下:1)如果可能,如何在机器人框架中传递默认可变参数?

python keyword-argument python-2.7 robotframework

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