我正在使用硒注入Java脚本变量并检索它以进行验证。
下面是我的示例代码,该代码在硒版本2.53.1上正常工作。
当我升级到硒3并开始将壁虎驱动程序用于Firefox时,在我获取价值时会引发异常。
driver.executeScript("globalVar='Amit';");
Object result = driver.executeScript("return globalVar");
System.out.println(result.toString());
例外:
org.openqa.selenium.JavascriptException: ReferenceError: globalVar is not defined
在硒3中,相同的代码也适用于Chrome。
我在这里想念什么吗?还是在Firefox / Gecko驱动程序中添加了允许这些功能的功能?
最佳答案
您在执行的脚本中设置的变量不是全局变量,它们在执行的函数范围内“坐着”。如果您想拥有一个跨多个执行脚本访问的全局变量,则必须使用可用的全局对象之一,例如window
:
driver.executeScript("window.globalVar = 'Amit';");
Object result = driver.executeScript("return window.globalVar");
System.out.println(result.toString());
关于selenium - 无法在Firefox中使用Selenium 3注入(inject)JavaScript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41241745/