java - 机器人框架: how can I get current instance of selenium webdriver to write my own keywords?

标签 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

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

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

WebDriver driver=new ChromeDriver();
driver.doSomething();

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

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

最佳答案

在Python中可以使用以下代码完成

from robot.libraries.BuiltIn import BuiltIn


def _browser(self):
    return BuiltIn().get_library_instance('Selenium2Library')._current_browser()

关于java - 机器人框架: how can I get current instance of selenium webdriver to write my own keywords?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44959866/

相关文章:

android - android appium 不支持滑动方法

robotframework - 如何在 Robot Framework 中清除或删除列表中的值

java - 在遍历 SQL 表时退出 while 循环

java - 如何避免在 ArrayAdapter 中泄漏上下文

java - 链表优先级队列上的无限循环

java - 了解 JavaFX WebView 线程模型

c# - 以不同用户身份运行的 selenium web 驱动程序未获取用户的配置文件/ session

selenium - XPath 元素包含 2 个子元素,每个子元素都与特定文本匹配

python - 如何在机器人框架中传递命令行参数以使其可用于所有库?

csv - 未找到名称为 'Fetch From Left' 的关键字