首页 > 编程问答 >使用 Selenium 时的 WebDriver 错误错误:OSError: [WinError 193] %1 不是有效的 Win32 应用程序

使用 Selenium 时的 WebDriver 错误错误:OSError: [WinError 193] %1 不是有效的 Win32 应用程序

时间:2024-07-27 05:34:01浏览次数:8  
标签:python selenium-webdriver webdriver-manager

我正在使用文档中的代码: https://pypi.org/project/webdriver-manager/#use-with-chrome

安装并升级所有软件包并运行下面的代码后:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))

我收到一个错误: OSError: [WinError 193] %1 不是有效的 Win32 应用程序

我不知道如何解决它,因为上次我运行驱动程序时它工作正常,没有问题。

我感谢你们的帮助。


这个错误信息 "OSError: [WinError 193] %1 不是有效的 Win32 应用程序" 通常出现在你试图运行一个不兼容的程序时,比如试图在 64 位版本的 Windows 上运行 32 位应用程序,或者反之。

在你的情况下,这个问题很可能是由于以下原因之一造成的:

1. Python 版本和 ChromeDriver 版本不匹配:

  • 你可能正在使用 64 位版本的 Python,但下载了 32 位版本的 ChromeDriver。
  • 确保你的 Python 版本(32 位或 64 位)与你下载的 ChromeDriver 版本相匹配。

2. ChromeDriver 路径问题:

  • webdriver-manager 可能没有正确下载或放置 ChromeDriver。
  • 尝试手动下载 ChromeDriver 并将其放在你的系统 PATH 环境变量中,或者在代码中明确指定 ChromeDriver 的路径:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service

# 将下面的路径替换为你下载的 ChromeDriver 的实际路径
chrome_driver_path = "C:/path/to/chromedriver.exe"

service = Service(executable_path=chrome_driver_path)
driver = webdriver.Chrome(service=service)

3. 损坏的 ChromeDriver 文件:

  • 你下载的 ChromeDriver 文件可能已损坏。
  • 尝试重新下载 ChromeDriver 文件。

解决步骤:

  1. 确认 Python 版本: 打开命令提示符并输入 python --version
  2. 下载对应版本的 ChromeDriver: https://chromedriver.chromium.org/downloads 下载与你的 Chrome 浏览器版本和 Python 版本相匹配的 ChromeDriver。
  3. 解压 ChromeDriver: 将下载的 ChromeDriver 压缩文件解压缩到一个你选择的目录。
  4. (可选) 设置环境变量:

    • 将 ChromeDriver 解压目录的路径添加到系统的 PATH 环境变量中。
    • 或者,直接在代码中指定 ChromeDriver 的路径,如上例所示。
  5. 重新运行代码: 再次尝试运行你的 Selenium 代码。

如果问题仍然存在,请提供以下信息以便我进一步帮助你:

  • 你的操作系统版本(例如,Windows 10 64 位)。
  • 你的 Python 版本(32 位或 64 位)。
  • 你使用的 Chrome 浏览器版本。
  • 你是否手动设置了 ChromeDriver 的路径,如果是,路径是什么?

标签:python,selenium-webdriver,webdriver-manager
From: 78793171

相关文章

  • Python griddata() 和 Matlab griddata():某些网格点的结果不同
    在将一些(相当大的物理)Matlab代码转换为Python时,我偶然发现了这种情况。当对相同的二维离散数据进行插值时,Python/Scipy的griddata()函数给出的结果与Matlab的对应函数不同。griddata()Matlab示例代码:Python示例代码:%Samplepoints(x,y):7x5=3......
  • Ebay Python SDK 仅在特定项目类别上返回错误
    我在一个项目中使用ebaySDK一段时间了。最近我尝试导入一些商品,例如手表、手机壳等...并且我使用了eBay自己通过eBay返回的英国商店页面上的类别ID他们的“get_category_suggestions”API端点,但eBay似乎有选择地决定拒绝某些项目并引发服务器错误!为了测试,我做了......
  • 使用特定的Python版本(MacOS)制作virtualenv
    我安装了brew,python3(默认和最新版本)和pip3,pyenv。TensorFlow现在不支持python3.7,所以我听说我应该制作一个独立运行3.6或更低版本的virtualenv。我安装了python3.6.7bypyenvinstall3.6.7但无法制作virtualenv-p3.6.7(mydir)因为3.6.7不在P......
  • 使用Python去除图像中的线条
    我正在尝试使用Python和cv2、numpy、skimage等从黑白图像中删除“阴影线”(如果图像中存在“阴影线”)。本质上,我的图像可以有1或2条曲线,如下例所示。但每条线都有一条1-5像素外的阴影线,需要删除。我怎样才能在Python中做到这一点?原始......
  • Python 和 OpenCV:如何裁剪半成形边界框
    我有一个为无网格表创建网格线的脚本:脚本之前:脚本之后:是否有一种简单的方法,使用OpenCV来裁剪“脚本之后”图像,使其仅包含四边边界框?示例输出:编辑:我目前正在研究一种解决方案,该解决方案可以找到垂直/水平方向的第一条/最后一条......
  • 使用类型提示将 Python 转换为 Cython
    类型提示现在在Python3.5版本中可用。在规范(PEP484)中,目标(和非目标)被明确暴露:#RationaleandGoals此PEP旨在为类型注释提供标准语法,开放Python代码更容易静态分析和重构、潜在的运行时类型检查以及(也许在某些情况下)利用类型信息生成代码。......
  • 在 Python 类型提示中区分 PySpark 和 Pandas DataFrame (PyCharm)
    在PyCharm中,如果使用apyspark.sql.DataFrame代替pandas.DataFrame,类型提示似乎不会触发警告,反之亦然。例如以下代码根本不会生成任何警告:frompyspark.sqlimportDataFrameasSparkDataFramefrompandasimportDataFrameasPandasDataFramedef......
  • 如何在Python中继承类型提示?
    所以我的问题是,当我有一个A类型的类来做事情并且我使用这些函数作为subclass(B)时,它们仍然是类A的类型,并且不接受我的类B对象作为参数或作为函数签名。我的问题简化了:fromtypingimportTypeVar,Generic,CallableT=TypeVar('T'......
  • Python - 如何传递类对象的函数参数类型(打字)
    我想python3.7附带了(不确定),不仅可以将变量名传递给函数,还可以传递变量的类型。我想知道的是是否有可能传递特定类的类型。以同样的方式传递:deffoo_func(i:int)->None:pass如果我有一个类,让我们说:classfoo_class(object):pass我如何转换fo......
  • 使用 Python 构建简单 REST API
    使用Python构建简单RESTAPI1.概述本技术文档旨在指导开发者使用Python框架Flask构建一个基本的RESTAPI。通过学习本指南,您将掌握创建、读取、更新和删除(CRUD)操作的基本知识,并能够使用Python构建自己的API。2.安装依赖首先,您需要确保已安装Python和Flask......