首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OSError:[WinError 193] %1不是一个有效的Win32应用程序错误,它使用GeckoDriver和火狐在Windows上使用Selenium和Python

OSError:[WinError 193] %1不是一个有效的Win32应用程序错误,它使用GeckoDriver和火狐在Windows上使用Selenium和Python
EN

Stack Overflow用户
提问于 2020-06-30 14:17:51
回答 2查看 1.1K关注 0票数 1

我在Ubuntu中用selenium创建了脚本,并在那里工作得很好,但是当我将它移到windows10时,我得到了很多错误,我试着一个一个地修复它,直到我看到这个错误。我一直在寻找这个问题的解决方案,但是我无法解决这个错误。

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "D:/Users/b/Documents/Python/Bolt/GUI.py", line 180, in start
    driver = l.start_chime()  # start chime
  File "D:\Users\b\Documents\Python\Bolt\Login.py", line 87, in start_chime
    self.chime_driver = webdriver.Firefox(executable_path=self.PATH)
  File "D:\Users\b\Documents\Python\Python3.8\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 164, in __init__
    self.service.start()
  File "D:\Users\b\Documents\Python\Python3.8\lib\site-packages\selenium\webdriver\common\service.py", line 72, in start
    self.process = subprocess.Popen(cmd, env=self.env,
  File "D:\Users\b\Documents\Python\Python3.8\lib\subprocess.py", line 854, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "D:\Users\b\Documents\Python\Python3.8\lib\subprocess.py", line 1307, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
  File "C:\Program Files\JetBrains\PyCharm 2020.1.2\plugins\python\helpers\pydev\_pydev_bundle\pydev_monkey.py", line 551, in new_CreateProcess
    return getattr(_subprocess, original_name)(app_name, patch_arg_str_win(cmd_line), *args)
OSError: [WinError 193] %1 is not a valid Win32 application

当我试图使用selenium打开webdriver时,就会发生这种情况。

代码语言:javascript
运行
复制
self.myday_driver = webdriver.Firefox(executable_path=self.PATH)

是否有任何方法可以将脚本从Ubunto Windows移动到Windows,而不会出现错误?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-30 15:24:42

这个错误信息..。

代码语言:javascript
运行
复制
OSError: [WinError 193] %1 is not a valid Win32 application

...implies表示底层操作系统不承认%1,即系统变量PATH为有效的Win32应用程序,即可执行二进制文件。

要启动驱动的GeckoDriver控制的火狐会话,您需要:

  • 下载最新版本的GeckoDriver二进制版本,放在您的系统中。
  • 接下来,在代码块中,您需要通过键executable_path提到二进制的绝对路径,如下所示: 从selenium导入webdriver驱动程序self.myday_driver =self.myday_driver
票数 0
EN

Stack Overflow用户

发布于 2020-06-30 14:43:20

我将尽力帮助你回答最后一个问题:

是否有任何方法可以将脚本从Ubunto Windows移动到Windows,而不会出现错误?

是的,您听说过码头吗?从本质上说,https://www.docker.com/将创建隔离环境,它将在安装了对接程序的每台机器上运行。这些环境在dockerfile中是可配置的,基本上,您需要遵循以下步骤:

  • 在两台机器上安装码头。我已经使用Windows和RH自动化了所有这些过程,并将错误最小化。
  • 创建一个码头文件,其结构将类似于:
代码语言:javascript
运行
复制
FROM ubuntu:18.04
COPY . /app
RUN make /app
CMD python /app/app.py
  • 因此,它将创建一个基于ubuntu映像的环境。
  • 复制当前目录(.)中的所有文件/app (请记住这将是一个ubuntu图像,所以您有一个标准的文件夹结构与/etc,/home,等等)。
  • 运行命令make (在您的示例中,可以使用pip安装一些依赖项)
  • 运行python命令。

您还可以找到可供使用的python映像,因此,您可以获得一个带有python的映像linux,然后只安装依赖项,而不是ubuntu:最新版本。

对于开发人员来说,这是一个很好的工具,我建议查看它,阅读文档以理解概念,它将简化您的生活。

希望能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62659531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档