当前位置: 首页 > 知识库问答 >
问题:

如何在Selenium中使用Chrome DevTools协议(使用Python)捕获HTTP请求和响应?

寿卜鹰
2023-03-14
driver.execute_cdp_cmd("Fetch.enable",{})
driver.get('https://www.example.com')

共有1个答案

闾丘树
2023-03-14

是的,你没看错。

根据Selenium V4.0.0-Alpha-3的发行说明:

* Expose devtools APIs from chromium derived drivers.
* Expose presence of devtools support on a role-based interface

根据Selenium V4.0.0.0-alpha-1的发行说明:

* Basic support for CDP landed via the "DevTools" interface.
    driver.getDevTools().createSession();
    driver.getDevTools().send(new Command("Profiler.enable", ImmutableMap.of()));
    driver.getDevTools().send(new Command("Profiler.start", ImmutableMap.of()));
    //register to profiler events
    driver.getDevTools().addListener(new Event("Profiler.consoleProfileStarted", ConsoleProfileStarted.class), new Consumer<Object>() {
        @Override
        public void accept(Object o) {
            //do something
        }
    });
    null
  • fetch.requestpaused:在启用域并且请求URL与指定筛选器匹配时发出。请求暂停,直到客户端使用continueRequest、failRequest或FulfillRequest之一响应。请求的阶段可以通过responseErrorReason和responseStatusCode的存在来确定--如果存在这两个字段中的任何一个,则请求处于响应阶段,否则则处于请求阶段。
  • fetch.authRequired:在handleAuthRequests设置为true的情况下启用域时发出。请求暂停,直到客户端用ContinueWithAuth响应。

你可以在下面找到几个有趣的讨论:

  • Selenium WebDriver(java)可以与浏览器的检查工具元素选择器交互吗?
  • WebDriver和DevTool协议有什么不同
 类似资料:
  • 问题内容: 我单击Firefox中的链接,网页使用javascript发送请求,然后服务器发送某种响应,其中包括网站地址。这样,新网站就会在新窗口中打开。链接后面的html代码是(我省略了initial和final 标签): 我想捕获服务器响应并使用Python和Selenium提取“新网站”。我一直在使用BeautifulSoup进行抓取,对Selenium来说还很陌生。 到目前为止,我已经能够

  • 我有一个带有Rest控制器的Spring启动应用程序,它将接受来自外部方A的超文本传输协议请求。 我想将此请求转发给另一方B。需要捕获来自B响应的数据,然后转发回A。 我最初的想法是通过RestTemplate发出另一个请求,等待响应,捕获必要的数据,然后转发回A。 我只是想知道是否有更巧妙的方法? 提亚

  • 问题内容: 如何修改参数以发送请求,如下所示: “获取www.sample.com HTTP / 1.0” “获取www.sample.com HTTP / 1.1” 问题答案: 请求不支持发送HTTP / 1.0消息。很难理解为什么需要这样做:HTTP / 1.1最初是在1999年6月发布的RFC 2616中指定的。因此,HTTP / 1.0已经过时了16年以上:现代工具在很大程度上不支持HTT

  • HTTP协议是版本控制工具普遍采用的协议,具有安全(HTTPS),方便(跨越防火墙)等优点。Git在 1.6.6版本之前对HTTP协议支持有限,是哑协议,访问效率低,但是在1.6.6之后,通过一个CGI实现了智能的HTTP协议支持。 5.1.1. 哑传输协议 所谓的哑传输协议(dumb protocol)就是在Git服务器和Git客户端的会话过程中只使用了相关协议提供的基本传输功能,而未针对Git

  • 我同意在Spring WebFlux中打破非阻塞建议。RestTemplate被列为要弃用的目标,这意味着Webclient将用于阻塞操作。对这个项目来说,审计比绩效更重要。

  • 问题内容: 我已经使用Selenium2 / WebDriver编写了测试,并且想要测试HTTP请求是否返回HTTP 403 Forbidden。 是否可以使用Selenium WebDriver获取HTTP响应状态代码? 问题答案: 一言以蔽之。无法使用Selenium WebDriver API。此问题已在项目的问题跟踪器中进行了讨论,该功能不会添加到API中。