我在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实例 .
我的意思是,如果我不使用机器人而只是简单的Selenium,我会做这样的事情:
WebDriver driver=new ChromeDriver();
driver.doSomething();
但是,在这种情况下,我不想实例化新的WebDriver,而是获取当前正在运行的WebDriver(Robot自动实例化) . 我怎样才能做到这一点?
到目前为止,我创建了一个 Selenium2Library
对象并使用 Selenium2Library.getLibraryInstance();
返回的值设置它,但是's not giving me access to selenium'方法(例如:未列出的getCurrentUrl()) .
2 回答
在python中,可以使用以下代码完成
实际上,我找到了一个解决方案,但我不确定这是正确的方法:
现在可以从驱动程序对象获得selenium方法 . 但是,可能有更好的方法,因为
javax.script.ScriptException
异常中有此消息:“访问限制:类型'ScriptException'不是API(对所需库的限制'C:\Program Files\Java\jdk1.8.0_131\jre\lib\rt.jar')”