我刚刚通过 Selenium Test Project 升级以使用来自 2.53.0 的新版本 3.0.1。我现在正在使用 Geckodriver v0.11.1,目前正在专门在 Firefox 上进行测试,它是 46.0.1 版本。
在升级之前,我的代码如下所示:
driver.Navigate().GoToUrl(DefaultBaseURL);
driver.ExecuteScript("$('#" + XXXX + "').val(\"" + XXXX + "\");");
升级后第二行现在失败,出现以下错误:
WebDriverException:ReferenceError:$ 未定义
如果启用“UseLegacyImplementation”,我可以再次工作。根据 Selenium 的网站,这是“指示是否使用旧版驱动程序实现”。所以,那里没有很多细节......但是当我启用它时,它似乎以与 2.53.0 相同的方式运行。
我对这个问题的第一个猜测是它与时间相关,类似于这里提到的帖子。但即使我在两条线之间放置大量等待时间,最终结果也总是相同的。似乎新的 selenium 库无法检测到页面已经加载了 jQuery。
有没有办法在 Selenium 3.0.1 中调用 JQuery 依赖脚本,而不启用“UseLegacyImplementation”?