问题标签 [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 回答
2625 浏览

python - Selenium-wire 找不到标头(Python)

Selenium 线没有使用命令找到我的标题request.response.headers['Content-Type']。我尝试了几个可以使用 chrome 开发工具找到的标头。

代码:从 seleniumwire 导入 webdriver

我得到的错误是KeyError: 'request-url'

0 投票
2 回答
1503 浏览

python - Seleniumwire 未在 chrome 无头模式下记录所有请求

我正在尝试使用seleniumwire捕获所有网络日志。当 chromedriver 处于正常模式时,它能够捕获所有请求。但是当它处于无头模式时,它不会捕获所有请求。

我尝试添加sleep(10)assert driver.last_request.response.status_code == 200 但都没有帮助。

由于seleniumwire不是那么受欢迎,我在下面添加了一个示例指南,希望让有硒知识的人尝试帮助我解决问题。

使用 seleniumwire

安装硒线

示例脚本:

0 投票
1 回答
1576 浏览

python - seleniumwire_options=None: SyntaxError: 无效语法

我正在使用 selenium-wire 使用 Chrome 浏览器单击按钮。直到今天,我的代码运行良好。但是,现在我收到以下错误,我不知道为什么:

我正在使用 python 2.7.16;硒线 1.0.4。

我在这里错过了什么吗?

0 投票
1 回答
324 浏览

python - 使用 Python 操作 POST 方法

我想在请求正文中使用带有参数的 POST 方法。经过一番研究,我找到了图书馆 seleniumwire。我试过这个:

谢谢!

0 投票
1 回答
52 浏览

selenium - 在使用 selenium-wire python 捕获网络流量时查看不同格式的日志

在从网站后端捕获 web 服务的 http 请求时,看到一些日志的格式不同。我使用 python 日志记录作为一种格式:

只是期望看到一个输出:

但除了这种格式之外,还可以看到不同的日志格式,如下所示:

谁能帮我看看为什么看到这些日志?

0 投票
0 回答
53 浏览

python-3.x - 什么可以用于自动化 web 服务而不是 selenium-wire?

我正在尝试在特定网页后面自动化 Web 服务(浏览器发出的基础请求)。首先捕获网络流量,然后在日志文件中记录一些特定的 url。您对工具、驱动程序有任何想法吗?

谢谢

0 投票
1 回答
4744 浏览

firefox - 由于代理配置而导致的硒线阻塞连接

我正在使用 selenium-wire 和 firefox webdriver 访问网站(在线游戏)。我在本地网络上运行 python 脚本,并且不需要代理来访问 Internet。

这是我的代码的摘录:

到目前为止一切正常。该页面现在应该在新 URL ( https://xxx.forgeofempires.com/game ) 加载游戏,但它卡住了。如果我按 F5,我会得到The proxy server is refusing connections。我去了我的 Firefox 代理设置,发现它们从No proxyUse system proxy settings更改为Manual 127.0.0.1。我猜它是硒线改变它以检查流量?

在此处输入图像描述

我的最终目标是捕捉页面生成的 XHR 响应,这就是我使用 Selenium-wire 的原因。

连接到网站时,什么可能导致 localhost 代理被阻止?我该如何解决?

如果我更换

经过

它工作正常,但我将无法捕捉 XHR 响应。我也尝试过 mitmproxy,但没有成功。

更新 1:

我做了一个完全不起作用的例子,它表明 Selenium-wire 做错了什么。在下面的示例中,无法加载 Google 的结果页面。

0 投票
0 回答
437 浏览

python - 使用经过身份验证的代理后无法单击按钮(Python seleniumwire)

我正在尝试单击“添加到包”按钮,并且使用 selenium 它工作得很好,但是在使用 selenium-wire 和经过身份验证的代理服务器之后,虽然我仍然可以访问站点并单击所有其他按钮并且它可以工作,在单击此之后一什么事都没发生。我尝试了多个代理,甚至使用外部软件对其进行了测试,并在https://www.whatismyip.com/上检查了我的 ip 。
我还通过将代理添加到firefox,导航到页面并单击相同的按钮来手动测试代理,它可以工作。我第二天正在处理这个问题,我不知道我应该找到什么,是的,必须使用经过身份验证的代理。

代理的模块和定义:

这是单击按钮的代码:

这是重复的 bash 输出:

更新:
我们发现问题出在 CORS POLICY 上,我们将其修复如下:

  • 我们改成了 Chrome(上面已经改写了)

但不幸的是,我们在登录时遇到了类似的问题,浏览器报告错误:400 错误请求和错误:403 禁止访问

0 投票
1 回答
727 浏览

python - 使用 Pyinstaller 后无法使用 Selenium-wire 访问网站

我需要访问一个网站。为此,我需要使用具有身份验证和特定用户代理的代理。这是代码:

为了确保一切正常,我 ping http://whatsmyuseragent.org/

这部分代码工作正常。但是,当我获得目标网站时:

我收到一个错误:

selenium.common.exceptions.WebDriverException:消息:到达错误页面:about:neterror?e=nssFailure2&u=...

奇怪的是,当我直接通过 PyCharm 运行脚本时 - 一切都很完美。但是在使用pyinstaller以下参数后:

Selenium 确实到达http://whatsmyuseragent.org/但无法到达目标网站https://domain.tld

我确实认为问题在于pyinstaller本身,但我真的不明白为什么会发生。我只有两个版本来解释它为什么会发生:

  1. 编译过程中的问题pyinstaller
  2. 目标网站以某种方式不允许 Selenium 访问它(但是为什么 Selenium 在使用 PyCharm 而不是 .exe 文件时可以访问它?)

有什么想法和/或替代品pyinstaller吗?

0 投票
2 回答
857 浏览

python - 切换到 Python/Selenium-wire 后无法与 iframe 交互

我正在尝试与具有以下结构的页面上的按钮进行交互。感兴趣的按钮位于 iframe 主体中的 div 中,该主体位于主体内部。我已经阅读了有关如何切换到 iframe 的所有 StackOverflow 问题 - 正如您在下面看到的那样,我对此没有任何问题。我有一个问题是,无论该建议如何,我都无法与切换到的 iframe 进行交互。目标是单击特定 iframe 内的按钮。

编辑:这个问题似乎与 selenium-wire 库有关。这是完整的代码。

这是页面布局的示例

使用 Jupyter Notebook 我已经能够找到 iframe 并切换到它。该问题与尝试与 iFrame 交互过快无关,因为我控制了速度。我尝试过使用预期条件并等到 iframe 可以切换到,但这与我的问题无关。

上面的代码打印出“interesting div”,所以它成功找到了iframe所在的div,并且显然选择了这个div?当我切换到 iframe 时,网页会发生变化,并且 iframe 会获得一个唯一的 GUID:

我可以使用

然后我尝试像这样解析 iframe:

这给出了错误:

消息:元素不可交互

如果我更换上述驱动程序。使用 iframe.find_element_by_xpath... 我收到以下错误:

消息:没有这样的元素:无法找到元素:{"method":"xpath","selector":"//button[@id="bestButton"]"}

在使用上面的 switch_to.frame(iframe)切换到 iframe 后,我还尝试与 iframe 中的主体进行交互,因此在此示例中,驱动程序已经在 iframe 中:

这打印出来

不需要的身体

所以不知何故,驱动程序没有切换到我指定的 iFrame,而是仍然停留在主 HTML 上。在 chrome 上加载网页时,我可以使用这个 XPath //button[contains(@id='bestButton')] 找到我想要的按钮,但在 Selenium 中它不起作用,因为它被 #document 中的框架。

我错过了什么?如果有帮助,我感兴趣的 iFrame 实际上是一个关于 cookie 同意的模式窗口,我正试图摆脱它以与网站交互。