我有一个简单的 Web 应用程序,带有一组附带的 Selenium 测试。在每个测试运行之前,我通过运行
executeAsyncScript
来获取用户对象,如下所示:
String getUserScript = "const callback = arguments.at(-1);\n" +
"const user = await fetch('/user');\n" +
"callback(user);";
jsExecutor.executeAsyncScript(getUserScript);
当使用 Chrome 或 Edge 作为浏览器运行时,效果非常好,但是当我使用 Firefox 尝试时,测试失败并出现以下错误:
语法错误:await 仅在异步函数、异步生成器和模块中有效
我知道,一般来说,您需要将函数标记为
async
才能在其中使用 await
。但在这种情况下,在使用 Chrome 或 Edge 时,它可以正常工作,而无需将我的脚本包装在毫无意义的额外 async
函数中。 Firefox 是唯一对此有所抱怨的浏览器,所以我想知道我是否可能缺少任何 Firefox WebDriver 首选项或设置来允许该脚本按原样工作?谢谢。
我也有同样的问题,有解决办法吗?