标签: robotframework

Robot Framework:从Python库代码访问Robot的全局变量?

我有一些设置类型的全局变量,我希望能够从Python代码访问.例如:

pybot --variable RESULTS_PATH:/wherever/this/points test.txt
Run Code Online (Sandbox Code Playgroud)

现在,我的模块logger.py文件需要知道要正确设置的results_path.

我知道我可以用变量初始化记录器,比如

***Settings***
Library  logger  ${RESULTS_PATH}
Run Code Online (Sandbox Code Playgroud)

然后在logger中我将传递results_path:

 def __init__(self, results_path):
   # Whatever
Run Code Online (Sandbox Code Playgroud)

但是,对我来说这样做的问题是我想从Python代码和测试用例中访问和使用记录器.因此,如果我以这种方式设置它,如果我想使用Python代码中的记录器,我遇到了需要results_path来正确初始化记录器的相同问题.

机器人框架库中是否有任何函数可以让我从Python代码中获取$ {RESULTS_PATH}的值?做这样的事情的正确方法是什么?

现在,我对该问题的解决方法是将RESULTS_PATH设置为环境变量.所以我有类似的东西:

运行如下:

RESULTS_PATH=/wherever/this/points pybot test.txt
Run Code Online (Sandbox Code Playgroud)

档案test.txt:

***Settings***
Library  logger
...
Run Code Online (Sandbox Code Playgroud)

档案logger.py:

results_path = os.environ["RESULTS_PATH"]
# Other set up stuff
Run Code Online (Sandbox Code Playgroud)

python robotframework

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

将现有的Webdriver对象传递给Robot Framework的自定义Python库

我正在尝试为Robot Framework创建一个自定义Python库,但我是Python和Robot的新手,我不知道如何完成我想要做的事情.我想将使用Selenium2Library创建的Robot的Webdriver对象传递给我的自定义Python库,以便我可以使用Webdriver的方法,例如find_element_by_id.我已经看到了一些关于如何在这里这里做的建议,但它们是针对Java库的 - 我找不到任何Python指令.

我将如何在Python中执行此操作?或者我想以不同方式执行此操作而不传递Webdriver对象?

python robotframework selenium-webdriver

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

IF ELSE在具有变量赋值的机器人框架中

我需要在机器人框架中有条件地执行一些关键字,但我不知道该怎么做,它不起作用.我尝试了很多选项,但我想我的"IF-ELSE"声明完全错了..

Choose Particular Filter ${FILTER} And Uncheck All Values
    ${bool}=   is filter opened   ${AVAILABLE FILTERS}   ${FILTER}
    ${uncheck_all_button}=    run keyword  if    "${bool}" == "True"   uncheck all in filter  ${AVAILABLE FILTERS}   ${FILTER}
    ...                       click element   ${uncheck_all_button}
    ...                       ELSE
    ...                       Set variable    ${particular_filter}:    find particular filter   ${AVAILABLE FILTERS}  ${FILTER}
    ...                       click element   ${particular_filter}
    ...                       Set variable    ${uncheck_all_button}:   uncheck all in filter  ${AVAILABLE FILTERS}   ${FILTER}
    ...                       click element   ${uncheck_all_button}
Run Code Online (Sandbox Code Playgroud)

它失败了:Variable '${particular_filter}' not found. 但是如果我运行它,它甚至不应该转到ELSE分支,因为$ {bool}是True ...我的自定义函数is filter opened只检查过滤器是否已经打开 - 如果是,则返回True.我的自定义函数uncheck …

python automated-tests if-statement robotframework

14
推荐指数
3
解决办法
4万
查看次数

硒和无头环境

我最近在Red Hat Server上安装了Python 2.7,Robot Framework和Selenium Library(我仍然不知道我是否成功...),以便在Web应用程序上运行一些测试.

所以我尝试了一个使用Robot Framework的简单测试用例来查看Selenium Library是否正常运行,只是打开一个网页,仅此而已......

Selenium Server根据ps的结果启动并运行,Firefox二进制文件在PATH中...

从Robot Framework运行测试用例(使用pybot testcasename.tsv)我得到一个例外:

错误:将屏幕截图捕获到字符串时出现问题:java.awt.AWTException:无头环境

那么,无头环境是什么?有没有人知道是否还有其他东西需要安装或配置?

environment selenium exception headless robotframework

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

从Python写入机器人框架控制台

我是一个使用python的新手,我想请求你的帮助,告诉我如何将消息从Python打印到机器人框架控制台.

python console robotframework

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

如何在RobotFramework中进行多行测试设置或拆卸而不创建新关键字?

我需要在测试用例中调用两个拆卸关键字,但不能为此创建新的关键字.如果关键字和文档或循环有这样的语法,我很有意思:

[Documentation]  line1
...              line2
...              line3
Run Code Online (Sandbox Code Playgroud)

testing automation robotframework

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

JSON在ROBOT中处理

我有一个Json文件,其中有一个字段,我需要编辑并保存文件以供下次使用.

但是我需要编辑的字段如下所示,

我需要在运行时随机生成该字段,我将在变量中捕获并将其传递给此json特定键"dp",然后保存json.

保存的json将用于REST POST URL.

            {
                "p": "10",
                "v": 100,
                "vt": [
                    {
                        "dp": "Field to be edited"(integer value) , 
                  ]          
            }
Run Code Online (Sandbox Code Playgroud)

请帮帮我,我正在使用ROBOT框架,我需要在运行时更新json字段.

json robotframework

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

错误:打开Robot Framework日志失败

如果我打开由Robot Framework生成的任何.html文件,并尝试使用任何可用的任何python代码或内置命令行工具将其转换为任何其他格式(例如,docx formate).我收到以下错误,

  1. 打开机器人框架日志失败

•确认您的浏览器已启用JavaScript.

•确保使用足够现代的浏览器.需要Firefox 3.5,IE 8或同等版本,建议使用较新的浏览器.

•检查浏览器的JavaScript错误日志中是否有消息.如果您怀疑遇到错误,请报告问题.

·即使我已经在浏览器中启用了JavaScript,我也收到此错误.我在Mac上使用Mozilla Firefox版本45.0.2.

有谁可以帮我解决这个问题?

javascript python robotframework

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

有没有办法让Robot Framework按特定顺序运行测试套件?

假设我在本地目录foo和bar中有2个测试套件,我想按照foo然后bar的顺序运行测试套件.

我试图运行pybot -s foo -s bar .,但它然后只是运行bar然后foo(即按字母顺序).

有没有办法让pybot运行机器人框架套件按我定义的顺序执行?

testing robotframework

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

Robot Framework测试脚本因SSLError而失败

我编写了Robot Framework测试脚本,.tsv用于测试Web服务/ API.当我开始收到以下错误时,一切都运行良好,直到今天(可能是因为Robot Framework的新更新):

SSLError :("握手不好:SysCallError(-1,'Unexpected EOF')",)

此错误不断弹出测试脚本中的以下代码:

${headers}=  Create Dictionary Content-Type application/json  Accept application/json
RequestsKeywords.Get Request httpbin ${url} headers=${headers} //ERROR SHOWS FOR THIS STATEMENT
Run Code Online (Sandbox Code Playgroud)

我确实得到了这个错误的详细回溯,如下所示:

Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/RequestsLibrary/RequestsKeywords.py", line 298, in get_request
    session, uri, params, headers, redir, timeout)
  File "/Library/Python/2.7/site-packages/RequestsLibrary/RequestsKeywords.py", line 801, in _get_request
    cookies=self.cookies)
  File "/Library/Python/2.7/site-packages/requests/sessions.py", line 480, in get
    return self.request('GET', url, **kwargs)
  File "/Library/Python/2.7/site-packages/requests/sessions.py", line 468, in request
    resp = self.send(prep, **send_kwargs)
  File "/Library/Python/2.7/site-packages/requests/sessions.py", line 576, in send
    r = …
Run Code Online (Sandbox Code Playgroud)

python api automation openssl robotframework

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