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

时间:2017-10-20 06:26:07

标签: python selenium-webdriver robotframework

我创建了一个初始化chrome浏览器的python代码,我想将此驱动程序实例传递给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 :(得分: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)