使用Robot框架中已打开的浏览器窗口

时间:2017-01-03 16:21:39

标签: selenium robotframework

我们正在使用Robot Framework来编写/自动化验收测试用例。

每当我需要运行整个脚本来检查我的脚本的最后一行代码时,那会浪费很多时间并在系统中创建大量重复记录,我只是想避免重新运行整个脚本来检查最后一行代码,并从之前运行的错误点恢复执行。

也就是说;如果测试运行会抛出错误;它不仅会关闭浏览器窗口;下一次运行将使用相同的浏览器窗口和下一个命令,之后它在上次运行时失败。

2 个答案:

答案 0 :(得分:2)

你问的问题不是直接用Robot / Selenium做的,但是根据你的写作,我可以看到一些改进的空间:

  • “在系统中创建了大量重复记录”=>你应该在你的测试中使用Teardown来在测试结束时清理系统(即使出现故障也会进行拆卸)。因此,下次运行测试时,系统会启动清洁
  • “那浪费了很多时间”=>如果你的测试太长而无法运行,也许你应该考虑将它们拆分成更小的块。并且还考虑直接通过REST或SOAP接口而不是浏览器运行部分测试。

答案 1 :(得分:0)

这是Firefox(win)的geckodriver示例

在启用木偶的情况下启动Firefox(标准端口为2828)

"C:\Program Files\Mozilla Firefox\firefox.exe" --marionette

机器人示例脚本

*** Settings ***
Library           SeleniumLibrary

*** Variables ***
${BROWSER}          Firefox
${GECKODRIVER EXE}  c:/MY_GECKODRIVER_PATH/geckodriver.exe
${GECKODRIVER LOG}  C:/MY_GECKODRIVER_LOG_PATH/log.txt

*** Test Cases ***
Firefox Browser Test
    Init Webdriver
    Go To   https://www.google.com

*** Keywords ***
Init Webdriver
    ${service_args}=     Create List    --connect-existing    --marionette-port=2828    --marionette-host=127.0.0.1
    Create Webdriver     ${BROWSER}        executable_path=${GECKODRIVER EXE}   service_args=${service_args}    service_log_path=${GECKODRIVER LOG}