我正在使用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驱动程序中的这些内容?
答案 0 :(得分:0)
您在执行的脚本中设置的变量不是全局的 - 它们“坐在”执行函数的范围内。如果要拥有要在多个已执行脚本中访问的全局变量,则必须使用其中一个可用的全局对象,例如: window
:
driver.executeScript("window.globalVar = 'Amit';");
Object result = driver.executeScript("return window.globalVar");
System.out.println(result.toString());