Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium 使用Robot框架中已打开的浏览器窗口_Selenium_Robotframework - Fatal编程技术网

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

Selenium 使用Robot框架中已打开的浏览器窗口,selenium,robotframework,Selenium,Robotframework,我们正在使用Robot框架来编写/自动化验收测试用例 每次我需要运行整个脚本来检查脚本的最后几行代码时,这会浪费大量时间并在系统中创建大量重复记录,我只是想避免重新运行整个脚本来检查最后几行代码,并从上次运行时出错的位置恢复执行 就是说,;如果测试运行抛出错误;它不仅会关闭浏览器窗口;下一次运行将使用与上一次运行失败的下一个命令相同的浏览器窗口。Robot/Selenium无法直接实现您的要求,但从您编写的内容来看,我可以看到一些改进的空间: “在系统中创建大量重复记录”=>您应该在测试中进行

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

每次我需要运行整个脚本来检查脚本的最后几行代码时,这会浪费大量时间并在系统中创建大量重复记录,我只是想避免重新运行整个脚本来检查最后几行代码,并从上次运行时出错的位置恢复执行


就是说,;如果测试运行抛出错误;它不仅会关闭浏览器窗口;下一次运行将使用与上一次运行失败的下一个命令相同的浏览器窗口。Robot/Selenium无法直接实现您的要求,但从您编写的内容来看,我可以看到一些改进的空间:

  • “在系统中创建大量重复记录”=>您应该在测试中进行拆卸,以便在测试完成时清理系统(并且即使出现故障也会运行拆卸)。因此,下次运行测试时,系统将干净地启动
  • “浪费大量的时间”= >如果你的测试太长而无法运行,也许你应该考虑把它们分成更小的块。还可以考虑通过REST或SOAP接口代替浏览器直接运行测试的一部分。
      以下是Firefox(win)的geckodriver示例

      启用木偶网启动Firefox(标准端口为2828)

      机器人示例脚本

      *** 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}
      

      这是绝对可能的,检查这个(无耻的插件-我的:))回答这个问题-我要反驳你的第二点-在开发过程中,我发现重用一个开放的浏览器非常有用-它为我节省了20-30秒用于重新启动、导航和SUT所做的后端数据检索。这主要与OP期望的行为一致——从最后一个故障/终止点恢复执行。不过我不得不说,对于生产使用,这应该通过非常合理的推理和额外的预防措施来完成。
      *** 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}