Python Selenium->;检查是否安装了Firefox 32/64位或Chrome 32/64位?

Python Selenium->;检查是否安装了Firefox 32/64位或Chrome 32/64位?,python,x86,pyinstaller,32bit-64bit,Python,X86,Pyinstaller,32bit 64bit,我使用32位geckodriver.exe编写了一个python脚本。 我将这个脚本打包为一个Pyinstalled.exe文件,其中包含geckodriver 我认识到,当有人使用Firefox 64位时,这个.exe不会运行。 显然,如果有人根本不使用Firefox,而是使用Chrome,那么它也不起作用 因此,理论上,我可以将2个geckodriver版本(32/64)和2个chromedriver版本(32/64)打包到.exe中,但如何确定用户系统上安装了哪个浏览器和哪个版本(32/6

我使用32位geckodriver.exe编写了一个python脚本。 我将这个脚本打包为一个Pyinstalled.exe文件,其中包含geckodriver

我认识到,当有人使用Firefox 64位时,这个.exe不会运行。 显然,如果有人根本不使用Firefox,而是使用Chrome,那么它也不起作用

因此,理论上,我可以将2个geckodriver版本(32/64)和2个chromedriver版本(32/64)打包到.exe中,但如何确定用户系统上安装了哪个浏览器和哪个版本(32/64)

这只是windows系统。。。那么,有没有一种方法可以通过读取用户注册表来实现呢? 任何想法都值得赞赏


谢谢

我认为您可以使用注册表来完成以下操作:

从winreg导入HKEY_本地_机器
导入winreg
尝试:
winreg.OpenKey(HKEY\U本地\u计算机,'SOFTWARE\Microsoft\Windows\CurrentVersion\App path\chrome.exe',0,KEY\u ALL\u ACCESS).Close()
除FileNotFoundError外:
打印('未安装Chrome')
firefox也是如此

下面是一个在函数中使用它的好方法:

导入操作系统
导入Win32文件
从winreg导入*
导入winreg
CHROME\u KEY='SOFTWARE\Microsoft\Windows\CurrentVersion\App path\CHROME.exe'
def已安装():
尝试:
key=winreg.OpenKey(HKEY_本地_机器,CHROME_键,0,键全部访问)
path_dir=queryvaluex(键,“path”)[0]
file_arc=win32file.GetBinaryType(os.path.join(path_dir,'chrome.exe'))
如果文件_arc==0:
打印('是32位')
elif文件_弧==6:
打印('是64位')
返回真值
除FileNotFoundError外:
打印('未安装Chrome')
返回错误

请注意,您需要以管理员的身份运行才能正常工作

您认为有没有一种没有管理员权限的方法?那么检查32/64位呢?@tim你想知道整个系统是32位还是64位,或者具体是chrome,关于管理员是读取注册表,我想你必须对此有管理员许可,只是想检查安装的浏览器是32位还是64位版本。因为afaik geckodriver始终是一个特定的版本,或者是否有一个geckodriver支持两个版本的Firefox?@tim i更新了我的答案,现在检查了32或64:)