java - 如何使用 Selenium API 禁用来自已加载页面的 Ajax 请求

标签 java selenium-webdriver

我正在使用 PhantomJSDriver 使用 Java 和 Selenium 读取和解析页面。到目前为止,一切都很好。当页面每 30 秒加载一次时,就会从此加载页面包含的脚本之一执行 Ajax 调用。

我的问题:有没有办法停止执行某些或任何异步 Javascript 请求,至少是暂时的?

我遇到的问题是,如果我在这 30 秒之前没有完成“解析”页面,WebElements 就会变得陈旧,我需要重新开始......

最佳答案

如果解析页面的时间超过 30 秒,那么您可能采用了错误的方式。 无论如何,如果您仍然希望禁用所有 Ajax 调用:

((JavascriptExecutor)driver).executeScript(
  "var p=window.XMLHttpRequest.prototype; p.open=p.send=p.setRequestHeader=function(){};");

关于java - 如何使用 Selenium API 禁用来自已加载页面的 Ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36250479/

相关文章:

java - 在 Java 中返回嵌套类类型

java - 带有自己的 Jbutton 的 Jinternalframe 无法正常工作

java - 我需要在 Quartz 调度程序关闭时执行任务

Python在网页弹出窗口中从电脑中选择图像

html - 使用 selenium 抓取网页时缺少 HTML 内容

java - Java 和 JSP 真的有那么大的不同吗?

java - 如何在 android 的后者边界内的另一个应用程序内打开一个应用程序?

java - 上传图片 - 元素当前不可见

java - 页面对象模式理解

selenium-webdriver - 我们如何处理截断的标签或文本