问题标签 [seleniumwire]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
218 浏览

python - Python Selenium Wire Webdriver 未使用页面加载策略

编辑:还有其他问题解决了与未完全加载的页面交互的能力。这不是那个。这是特定于 SeleniumWire 驱动程序的,而不仅仅是 Selenium Webdriver。

我目前正在处理一个在 Python 3.8 中使用 Selenium 和 Chromedriver 的项目,这需要操作一个需要很长时间才能加载的页面。因此,我使用页面加载策略“渴望” options.page_load_strategy = 'eager',以便能够在页面完全加载之前操纵页面的某些元素。

我设置了一个测试,测量在声明浏览器后单击元素的时间。(有效地测量页面加载到可以单击恒定按钮的时间点)。当我使用常规的 Selenium Webdriver 时,运行 15 次测试让我的平均时间为0.7352秒。但是,当我使用 SeleniumWire Webdriver 时(唯一的变化是 Webdriver 差异的变化),我在 15 次测试后的加载时间平均为4.3745。这些加载时间与我使用“正常”(或默认)页面加载策略在 Selenium Webdriver 上运行此测试时相同,在 15 次测试后平均为4.3900

因此,我相信 SeleniumWire 没有使用页面加载策略,我正在寻找可能的解决方案。如何确保 SeleniumWire 使用预先加载?

0 投票
1 回答
379 浏览

python - 同一脚本中的多个 seleniumwire 请求

我正在运行执行以下操作的 Python 脚本:

  • 打开网页
  • 使用登录表格登录游戏
  • 等待页面加载(获取 Ajax 请求的 Json 响应)
  • 执行几次点击
  • 单击触发 ajax 请求的按钮
  • 需要读取 Ajax 请求的 json 响应。<这就是我的问题所在
  • 写入文件

我的问题是我无法捕获第二轮 Ajax 请求,并且在谷歌搜索时找不到任何解决方案。

我的代码如下所示:

单击画布后如何重新开始收听网络?

0 投票
0 回答
362 浏览

python - Python - selenium-wire 中的代理不隐藏 IP

我正在尝试抓取阿里快递。众所周知,如果检测到抓取尝试,我的 ip 可能会被禁止...这就是为什么我试图用 selenium wire 中的代理隐藏我的 IP,但是当我检查 IP 网站时,它给了我同样的信息IP 就像我不使用代理时一样。这是我的源代码:

提前致谢

0 投票
1 回答
241 浏览

java - 通过 Selenium WebDriver 设置 RequestHeader

我在尝试使用 browsermobproxy 为硒测试设置请求标头时遇到以下错误。

线程“main”org.openqa.selenium.WebDriverException 中的异常::无法从“Window”读取“localStorage”属性:拒绝访问此文档。

驱动程序

如果有人能在这方面帮助我,那就太好了。谢谢你。

0 投票
1 回答
294 浏览

linux - 具有依赖加密的错误 selenium 线 linux

我在 Linux 服务器上安装 seleniumwire 库时遇到问题,它向我发送了一个密码学 rust 错误,我试图解决它,但我没能解决,有什么想法吗?

0 投票
1 回答
177 浏览

python - Python - Selenium Wire,如何删除拦截器参数

我正在寻求一点帮助。

我正在使用 Selenium Wire 处理来自网站的请求,我需要更改请求中的一些设置。

我发现 request_interceptor 方法工作得很好。问题是,我只能覆盖 URL 中的一个参数,我没有找到删除的方法。

例如,我访问网站:myawesomeweather.com/monday 假设这个 url 加载了一个名为myawesomeweather.com/api/?d=monday&y=2021&m=03的 api 文件 ,并获取 2021 年 3 月星期一的所有数据.为了避免做多次请求,我只是想修改2020年的请求,所以我这样做了:

这是完美的,我得到了 url api:myawesomeweather.com/api/?d=monday &y=2020&m=03 但是现在我想做 2020 年的所有月份,所以我想删除& m=03并且只有有 myawesomeweather.com/api/?d=monday&y=2020

我该怎么做 ?如果我覆盖&m=并放'',它不起作用,设置需要完全脱离链接..

谢谢 !

- 编辑

我应该进行更多搜索,基本上该函数只需要 url 的每个参数并将它们放入一个字典中,所以只需要这样做:

谢谢你的时间

0 投票
0 回答
21 浏览

python - 在我浏览网站时下载图片

目标:在我浏览时从一个站点收集所有图像。

我试过了:

即使设置了 cookie 并且所有标头都更改为模仿 Firefox,requests 和 wget 也不起作用。

Firefox 缓存有图像,但它们都有一个随机字符串作为名称。我需要逻辑名称来对它们进行排序。

selenium-wire 非常接近工作。当我执行 driver.get() 时,driver.requests 会按预期为我提供所有请求,然后可以保存这些请求。问题是当我单击站点上的按钮时,新请求不会添加到 driver.requests 中。我试过了:

0 投票
4 回答
1794 浏览

selenium - Selenium-wire 响应对象 - 将响应主体作为字符串而不是字节获取的方法

我想在 selenium-wire 中获取响应正文作为字符串,我最终将其解析为 JSON。

response.body在 selenium-wire 中给出字节字符串。我尝试将其解码为,response.body.decode('utf-8')但这会导致解码错误。

有人可以帮我弄这个吗?我对这两种解决方案都很好:

  1. 一种将字节字符串解码为普通字符串的方法
  2. 一种首先将响应正文作为普通字符串的方法
0 投票
1 回答
1220 浏览

python-3.x - Selenium-wire 远程连接时不拦截请求

我在专用计算机上使用 Selenoid 来运行浏览器。
连接如下:

连接正常,浏览器控制也可以,但是当我想获取请求列表时,它是空的:

0 投票
0 回答
34 浏览

python - 在 Selenium Wire 中使用代理时无法进行 API 调用

我正在使用 Selenium 线来获取特定的请求标头。我已经获得了请求标头,但是当我尝试使用请求标头进行我使用邮递员创建的 API 调用时,我收到了这些错误。

获得请求标头后,有没有办法关闭代理或重置驱动程序?因为在我开始使用代理之前我没有遇到问题,但是我需要使用代理来运行特定网络的语法