当前位置: 首页 > 面试题库 >

在pyinstaller中以窗口模式导出到EXE后,selenium不起作用

廖君昊
2023-03-14
问题内容

我正在制作需要使用selenium的PyQt4应用程序。在开发过程中一切正常,但是当我通过 pyinstaller* 导出到 单个文件 EXE 且
没有控制台时 ,它会产生以下回溯错误:
* __

[WinError6] The handle is invalid

当我将其导出时console = True(在pyinstaller规范文件中),不会发生这种情况,该错误仅在 没有console的情况下 产生。

产生的错误在以下行中:

driver = webdriver.Chrome(executable_path="chromedriver.exe")

我的规格:

Python: 3.4
体系结构: 64位
Selenium: 3.6.0
Pyinstaller: 3.3
OS: Windows 10

我用谷歌搜索了大约1个小时,但找不到任何解决方法:(


问题答案:

经过大量研究,我找到了解决上述问题的方法。

您只需要做的就是编辑文件:
C:\Python34\Lib\site-packages\selenium\webdriver\common\service.py

更改以下行:

self.process = subprocess.Popen(cmd, env=self.env,
                                        close_fds=platform.system() != 'Windows',
                                        stdout=self.log_file, stderr=self.log_file)

至:

self.process = subprocess.Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=False, creationflags=0x08000000)

即使在开发过程中以及在部署到EXE之后,这也将起作用。

可能是硒虫。



 类似资料:
  • 所以我在使用android导航组件,我有一个问题(2.2.0-rc04版本)。 我有一个welcomeFragment(wF)。我想从wF导航到另一个导航图中的lSF。我也不想在导航到lSF时从backstack(poputto,popuptinclusive)中删除wF,因为用户可能想返回它。 导航到lSF后,后退如下所示:wF lSF 我们现在在lSF上,登录后我们想进入feedFragmen

  • 问题内容: 我正在使用Selenium Webdriver自动执行网页。我无法使用简单元素定位器方法在模式弹出窗口中单击按钮。 例: 打开www.walmart.com 在搜索框中输入电视。 选择一些电视,然后单击“添加到购物车” 现在出现一个弹出窗口,其中有“签出”按钮。我需要点击此“结帐”按钮。 我尝试了switchTo()窗口句柄,也尝试了switchTo()框架,但没有任何效果。 问题答案

  • 我希望使用Twitter引导模式窗口作为部分视图。然而,我并不真的认为它被设计成以这种方式使用;它似乎是为了以相当静态的方式使用。然而,我认为能够将其用作部分视图会很酷。 比如说,我有一个游戏列表。单击给定游戏的链接后,我希望从服务器请求数据,然后在当前页面顶部的模式窗口中显示有关该游戏的信息。 我做了一些研究,发现这篇文章很相似,但不完全相同。 有没有人尝试过成功或失败?有人在JSFIDLE上有

  • 我正在使用python 2.7在windows 10 64bit上工作。 这些是缺少durng pyinstaller的libs:9661警告:lib未找到:libeay32.dll 10082警告:lib未找到:ssleay32.dll 11941警告:lib未找到:libmysql.dll 此外,这些都是在构建文件夹中创建的WarnMain.txt中丢失的dll。他们太多了,不能在这里展示。

  • 问题内容: 我的目标是使用Webpack将隔离的组件导出到假定的全局对象中。 index.html 在上面的示例中,我假设有一个全局对象/模块,该对象/模块的属性将附加其他模块。因此,我想将隔离的模块附加到全局对象,而又不破坏or 。 webpack.config.js src / main.jsx 我尝试将Webpack的值设置为每个可能的值(请参阅http://webpack.github.i

  • 我得到了一个弹出窗口打开从位置C:\程序文件\谷歌\Chrome\应用程序\chrome.exe同时在chrome浏览器中执行硒网络驱动程序脚本。 这是抛出的错误,因为会话超时。 注意:相同的代码库在其他机器中工作正常。 你能帮我把这个整理一下吗? 我使用的代码如下所示:- 这就是我启动chrome浏览器的方式。没有提到代码库中的任何版本。 在此处输入图像描述 提前谢谢。赫马