首页 文章

Robot Framework:如何在Robot框架中使用User创建的浏览器实例

提问于
浏览
1

我已经创建了一个python代码来初始化一个chrome浏览器,我想将这个驱动程序实例传递给Robot Framework,以便RF的关键字可以在这个实例上运行 . 请让我知道我怎么能这样做 . 用于初始化文件的Py代码是:

'class SeleniumKeywords:

    ROBOT_LIBRARY_SCOPE = 'GLOBAL'

    def __init__(self):
        self.driver = None

    def open_browser(self, browser="chrome"):
        driver_class = drivers[browser]
        self.driver = driver_class()

    def go_to(self, url):
        self.driver.get(url)'

现在,当在Robot框架中使用它时,浏览器会打开,但RF关键字不起作用(selenium2library关键字) . 基本上我使用自定义关键字打开浏览器实例,并在RF中使用selenium2library关键字最大化 . 不幸的是它不起作用 . 请告诉我如何将此浏览器实例传递给RF:

'*** Settings ***
Library    ExtendedSelenium2Library
Library    ../Resources/SeleniumKeywords.py    
Resource    ../Global/GlobalConfig.robot




*** Test Cases ***
Reuse Session ID
    SeleniumKeywords.Open Browser    chrome
    maximize browser window  
    SeleniumKeywords.Go To    ${URL}  '

最大化浏览器窗口是RF关键字,我希望它能够在我的浏览器实例上运行

1 回答

  • 0

    我已经编写了自己的库,但我扩展了Selenium2Library,我可以将Selenium2Library关键字与我自己的关联 . 在Selenium2Library或者你的情况下,ExtendedSelenium2Library将无法识别你刚刚在Python中启动的会话,并且会给出“No browser is open”错误 . “最大化浏览器窗口”关键字依赖于之前使用“打开浏览器”关键字打开的浏览器 .

    如果你真的需要自己的Selenium库,你可以这样做:

    class SeleniumKeywords(ExtendedSelenium2Library):
    
        def go_to(self, url, browser="chrome"):
            self.open_browser(url, browser)
    

相关问题