【发布时间】:2017-05-05 15:15:07
【问题描述】:
我正在使用 selenium 注入 java 脚本变量并检索它以进行验证。
下面是我的示例代码,它在 selenium 版本 2.53.1 上运行良好。 当我升级到 selenium 3 并开始为 firefox 使用 gecko 驱动程序时,当我检索值时它会抛出异常。
driver.executeScript("globalVar='Amit';");
Object result = driver.executeScript("return globalVar");
System.out.println(result.toString());
例外:
org.openqa.selenium.JavascriptException: ReferenceError: globalVar is not defined
在 selenium 3 中,同样的代码也适用于 Chrome。
我在这里遗漏了什么吗?或者是否添加了任何功能以允许在 Firefox/Gecko 驱动程序中进行此类操作?
【问题讨论】:
-
这个错误发生在哪一行代码??
-
检索值时:Object result = driver.executeScript("return globalVar");
-
以
driver.executeScript("window.globalVar='Amit';"); Object result = driver.executeScript("return window.globalVar"); System.out.println(result.toString());尝试一次 -
是的,窗口和文档是替代的,但是这在 firefox 中不起作用的原因是什么,或者 firefox 将注入的变量存储在哪个对象中?
-
例如,如果我想注入 jquery,那么我不能更改所有变量和函数,这应该可以工作。
标签: selenium firefox selenium-firefoxdriver geckodriver