【发布时间】:2018-09-16 22:59:23
【问题描述】:
我的测试是使用 selenium 和 Chrome 用 python 编写的,这是我想在 .robot 中执行的操作:
Start New Session
Perform test 1
Perform test 2
这可能吗?因为发生的事情是每一行都忘记了有一个 Web 浏览器打开并崩溃。我尝试将它作为 self.driver 保存在 python 中,但它被删除了。为了让它工作,我在机器人文件中创建了一个 ${DRIVER} 变量,然后让套件设置输出 ${DRIVER},然后我将 ${DRIVER} 传递给每个测试。
*** Variables ***
${DRIVER}
*** Keywords ***
Start New Session
${DRIVER} ${fail} = Open Browser ${ADDR} ${DRIVER_LOCATION}
run keyword if ${fail}==1 fatal error
Set Suite Variable ${DRIVER}
reset_demo ${DRIVER}
begin_demo ${DRIVER}
Perform Test 1
abc ${DRIVER}
xyz ${DRIVER}
etc.
它有效,但它很丑。我认为 Robot Framework 的重点是看起来像自然语言,所以看起来应该有一种不那么笨拙的方法来做到这一点。我用谷歌搜索了所有我能想到的方法,但一无所获,也许我不知道词汇。
【问题讨论】:
-
另外,我所有的 python 函数都使用 self.driver,但是如果我也直接从 .robot 调用该函数,则必须接受第二个副本 ${DRIVER} 作为函数参数。
-
您的真正问题是什么?您是使用
Selenium2Library还是SeleniumLibrary,还是自己编写? -
你自定义的
open browser关键字是用python写的,还是机器人关键字? -
基于这个问题(以及@BryanOakley 回答的 cmets),我真的想敦促您用简单、实用的术语解释您想要做什么。您所说的一切都没有向我表明您所做的事情需要自定义 Python 开发。几乎所有简单的打开浏览器到站点并点击周围的示例都可以使用开箱即用的关键字来完成。因此,请提供公共网站的minimal reproducible example 并从那里获取。
标签: python selenium robotframework