我正在编写一个新的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,这就是我遇到这个问题的原因)
我需要生成随机数并将其分配给变量一次,以便以后多次使用它.我找到了关键字,Generate Random String但我不知道如何将它应用于我的案例.
我正在使用python使用Robot Framework Selenium。我需要获取字符串的特定部分的帮助,而无需获取外部库。可以说文本说“您产品的价格范围是$ 0- 400”,所以我希望能够得到400,并且粘贴在测试中的其他位置。这个数字并不总是400,有时可能是55或其他不同的数字。因此,我认为我需要一个从美元符号开始的GET TEXT,计算两个空格并取走剩下的所有内容。或者我可以得到第一个数字并加上10。像在此示例中的0一样,所以我希望它粘贴10。请让我知道!
HTML看起来像这样
<iframe src="/apex/cscfga__ConfigureProduct?linkedId=a0W8E000000Lpa5UAC&configId=a0Z8E000000NBGMUA4&retURL=/a0W8E000000Lpa5UAC&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.
第一次在这里发帖 我有一种感觉,这是一个非常愚蠢的问题,但由于某些原因,我的代码一直在失败,我只是无法指出错误.
这就是我所拥有的:
*** 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文档中看到可以直接在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) 机器人测试:
${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中解释.如何将其作为整数列表传递?
*** 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)
上面的代码运行良好,并运行套件拆卸.我有一个场景,我想为每个测试用例运行不同的拆卸操作,我怎么能修改上面的例子来做到这一点?
我正在使用Selenium2 w RF来测试相当复杂的Web应用程序的GUI.由于我确实遇到了一些带有元素加载的失败,想知道关键字之间有什么区别:
等到元素启用 定位器 等待元素是可见 定位器 等待直到页面包含元素 定位器
当我想检查页面元素是否已满载并准备使用时,每个关键字的哪个以及哪个关键字最可靠?是否有关键字检查是否加载了整页?
我需要在机器人框架中传递默认的可变参数。通常在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)如果可能,如何在机器人框架中传递默认可变参数?
robotframework ×10
python ×2
automation ×1
configparser ×1
iframe ×1
java ×1
keyword ×1
python-2.7 ×1
random ×1
selenium ×1
testing ×1
unicode ×1