机器人框架:如何获取 selenium webdriver 的当前实例来编写自己的关键字?

Flo*_*lla 3 java selenium robotframework

我有一个java中由maven驱动的Robot-framework项目,它使用selenium 3.4.0依赖项、robotframework 3.0.2依赖项、markusbernhardt的selenium2library版本1.4.0.8和robotframework-maven-plugin版本1.4.7。

我的机器人测试位于src/main/test/robotframework/acceptance文件夹中,而在src/main/java/mypackage中,我创建了一个 Customized.java 文件来设置浏览器驱动程序路径的系统属性(然后我将此库导入到我的测试:

*** Settings ***
Library             Selenium2Library
Library             mypackage.Customized
Run Code Online (Sandbox Code Playgroud)

这非常有效。但现在我想实现我自己的关键字来扩展 Selenium2Library。但我不确定如何获取当前正在运行的 WebDriver 实例。

我的意思是,如果我不使用 Robot 而只是使用普通 Selenium,我会做这样的事情:

WebDriver driver=new ChromeDriver();
driver.doSomething();
Run Code Online (Sandbox Code Playgroud)

然而,在这种情况下,我不想实例化一个新的 WebDriver,而是获取当前正在运行的 WebDriver(机器人自动实例化的)。我怎样才能做到这一点?

到目前为止,我已经创建了一个Selenium2Library对象并将其设置为返回的值Selenium2Library.getLibraryInstance();,但这并没有让我访问 selenium 的方法(例如: getCurrentUrl() 未列出)。

rom*_*nlv 5

在Python中可以通过以下代码完成

from robot.libraries.BuiltIn import BuiltIn


def _browser(self):
    return BuiltIn().get_library_instance('Selenium2Library')._current_browser()
Run Code Online (Sandbox Code Playgroud)