我不确定我的问题是否有任何解决方案,但不幸的是,我还没有找到任何关于它的文章或信息。
情况如下。我们有一个大量使用 jQuery 的网站,并且有一项服务每 5 秒或 10 秒刷新网站的一部分。由于这一半的时间,我从 WebDriver 收到了这个错误:
"Element not found in the cache - perhaps the page has changed since it was looked up"
根据 Internet,当 DOM 树在初始化 WebElement 和我想使用它执行(例如,单击事件)之间发生变化时出现此错误。
根据我们的开发人员的说法,我们的 jquery 解决方案有一个变量来控制页面是否刷新。所以,为了解决我的问题,我必须覆盖这个变量。我必须以 jQuery 能够理解它的方式覆盖这个变量——我的意思是在同一个实例中,如果这个定义在这个上下文中是正确的。
所以,请问是否可以?如果是这样,我想问一个小例子。
提前致谢!
安德拉斯
最佳答案
我只能同意 Aleh。
使用 JavaScriptExecutor
是处理此类问题的唯一方法。
我遇到了 jQuery jNice 库的问题,找不到任何其他解决方案。
这是一个用 Java 填充文本字段的示例:
JavascriptExecutor js = (JavascriptExecutor) webDriver;
js.executeScript("document.getElementsByName('<field_name_gets_here>')[0].value='" + your_value + "'");
关于javascript - 从 webdriver 覆盖一个 javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10299356/