3

我正在使用 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 驱动程序中进行此类操作?

4

1 回答 1

0

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

driver.executeScript("window.globalVar = 'Amit';");
Object result = driver.executeScript("return window.globalVar");
System.out.println(result.toString());
于 2016-12-20T14:58:27.337 回答