gpt4 book ai didi

javascript - 类型错误 : 'NoneType' object is not subscriptable while invoking execute_script() for Chrome Download Manager through Selenium

转载 作者:行者123 更新时间:2023-11-30 19:41:04 28 4
gpt4 key购买 nike

我一直在用这个功能https://stackoverflow.com/a/48267887/11220889等待下载完成并在完成后返回文件路径。到目前为止,它一直运行良好。

函数

def every_downloads_chrome(driver):
if not driver.current_url.startswith("chrome://downloads"):
driver.get("chrome://downloads/")
return driver.execute_script('''
var items = downloads.Manager.get().items_;
if (items.every(e => e.state === "COMPLETE"))
return items.map(e => e.file_url);
''')

怎么称呼

paths = WebDriverWait(driver, 120, 1).until(every_downloads_chrome)

我收到错误

TypeError: 'NoneType' object is not subscriptable

因此,据我所知,发生了一些变化,导致函数无法返回路径。我相信这是由于 chrome 内部的变化,或者更具体地说是 chrome 驱动程序的变化。我做出这种假设的两个原因是:

1) 我在我同事使用的另一个代码中有这个函数,她调用我说它昨天产生了这个错误。

2)两个代码都没有改变,所以改变必须在 chrome 中

我想继续使用这个脚本,但如果不可能的话,还有另一个函数等待下载完成并返回路径,理想情况下是通过驱动程序而不是通过文件路径完成这一切,因为多个用户在多台机器上使用我的代码.

编辑:版本-

Name: selenium
Version: 3.141.0

Name: Chrome Browser
Version: 73.0.3683.86

Name: Chrome Driver
Version: 2.43.600210

Name: System
Version: Windows 10 Pro x64

最佳答案

根据错误信息:

TypeError: 'NoneType' object is not subscriptable

您的主要问题似乎是您正在使用的二进制文件版本之间的不兼容,如下所示:

  • 您正在使用 chromedriver=2.43
  • chromedriver=2.43 的发行说明明确提到以下内容:

Supports Chrome v69-71

Supports Chrome v71-73

因此 ChromeDriver v2.43Chrome 浏览器 v73.0 之间存在明显的不匹配


解决方案

  • ChromeDriver 升级到当前 ChromeDriver v2.46水平。
  • Chrome 版本保持在 Chrome v73 级别。 ( as per ChromeDriver v2.46 release notes )
  • 清理您的项目工作区,通过您的IDE重建您的项目,仅使用所需的依赖项。
  • 如果您的基础 Web Client 版本太旧,则将其卸载并安装最新的 GA 和发布版本的 Web Client
  • 执行你的@Test
  • 始终在 tearDown(){} 方法中调用 driver.quit() 以关闭和销毁 WebDriverWeb 客户端 实例优雅。

更新

当前 GAed Chrome v73 有一些问题,您可能希望降级到 Chrome v72。您可以在以下位置找到一些相关讨论:

关于javascript - 类型错误 : 'NoneType' object is not subscriptable while invoking execute_script() for Chrome Download Manager through Selenium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55397792/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com