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

通过Selenium使用GeckoDriver Firefox放弃了浏览上下文

解河
2023-03-14

我没有对我的python selenium程序做任何更改,3天前它运行良好。现在,当我尝试使用它时,我得到:

浏览上下文已被丢弃无法解码来自木偶的响应

知道代码之外的原因是什么吗?(由于未进行任何更改)

我正在使用火狐和壁虎驱动程序。在我得到这些错误后,我更新了火狐、壁虎驱动程序和硒,但没有帮助。

共有3个答案

韩经武
2023-03-14

我删除了窗口的大小,它正在工作,没有这个错误

司马渝
2023-03-14

在成功登录之后,当我被重定向到下一个页面时,我在一个特定的网站上遇到了相同的错误。

在检查Firefox浏览器中新页面代码的源代码时,我注意到一些格式/HTML质量不好的细节在手动刷新后消失了。(我怀疑这与该网站缺乏质量有关)。

为了解决这个问题,我所做的是在一个新页面上开始下一步,刷新我的驱动器:

def my_next_step(driver):
    driver.refresh()
    time.sleep(10)
    element=driver.switch_to_frame('iframe')
    .......

这帮助我克服了网站质量问题。

傅越
2023-03-14

此错误消息...

Browsing context has been discarded
.
Failed to decode response from marionette

...暗示壁虎司机和木偶之间的通讯中断了。

有关二进制版本interms的更多信息:

  • Selenium服务器/客户端

此外,您的代码块和错误堆栈跟踪将为我们提供一些关于发生了什么错误的线索。但是,由于以下多种因素,可能会出现此问题:

  • 如果您使用了driver.navigate(). back();当Selenium的焦点在内时,导航请求会删除当前浏览上下文。

有关详细讨论,请参见:

  • Python/Firefox无头抓取脚本中的“未能解码来自木偶的响应”消息

 类似资料:
  • 这是我的全部剧本 运行时产生: 我刚刚经历了更新的一切: 壁虎河:0.29.0 我已经搜索了几个关于同一个错误的问题,但仍然完全不知道这里的问题是什么。我几乎什么都没做。这是Selenium Python的开始示例,或者至少是开始示例的开始。

  • 我正在尝试使用量角器运行一个简单的测试脚本。 环境: 这是我的量角器配置文件。 这是我的测试脚本(todo-spec.js) 这是我的node_modules/量角器/node_modules/webdriver-Manager/selenium/目录如下所示: 当我使用/path/to/gradutor conf.js运行测试时,出现了下面提到的错误。 任何帮助都将不胜感激。

  • 问题内容: 我正在尝试使用量角器运行一个简单的测试脚本。 环境: 这是我的量角器配置文件。 这是我的测试脚本(todo-spec.js) 这是我的 node_modules / protractor / node_modules / webdriver-manager / selenium / 目录,如下所示: 使用进行测试时,出现以下错误。 任何帮助,将不胜感激。 问题答案: 可以使用以下配置解

  • 我正在编写一个程序,帮助我的客户从网站下载发票PDF,第一次使用。之后,程序Hibernate一定时间,醒来时开始搜索我的客户的电子邮件(使用S22 DLL),如果他找到某个电子邮件,则从电子邮件中提取链接并使用(第二次)。但这次我得到了一个例外 浏览上下文已被丢弃 我已经尽了一切可能,但最“震惊”的是,我在谷歌上找不到任何关于这个错误的东西,也没有在硒留档上找到任何东西。 我不明白这是什么意思

  • 如何在Docker中运行基于硒的测试? 我正在尝试使用Firefox和Geckodriver在Ubuntu 18 Docker镜像下运行一些Python Selenium测试。 我的docker撰写。yml文件只是: 不幸的是,大多数测试都会失败,出现以下错误: 我能找到的少数提及此错误的搜索结果表明这是因为内存不足。我正在运行测试的服务器总内存为8GB,尽管我也在32GB的机器上进行了测试并收到

  • 使用presigned URLs,你可以让浏览器直接上传一个文件到S3服务,而不需要暴露S3服务的认证信息给这个用户。下面就是使用minio-js实现的一个示例程序。 服务端代码 const MinIO = require('minio') var client = new MinIO.Client({ endPoint: 'play.min.io', port: 9000,