无法在firefox中使用selenium 3注入javascript

时间:2016-12-20 11:53:08

标签: selenium firefox selenium-firefoxdriver geckodriver

我正在使用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驱动程序中的这些内容?

1 个答案:

答案 0 :(得分:0)

您在执行的脚本中设置的变量不是全局的 - 它们“坐在”执行函数的范围内。如果要拥有要在多个已执行脚本中访问的全局变量,则必须使用其中一个可用的全局对象,例如: window

driver.executeScript("window.globalVar = 'Amit';");
Object result = driver.executeScript("return window.globalVar");
System.out.println(result.toString());