在未安装 chrome 的情况下启动基于 selenium 的独立 exe
Posted
技术标签:
【中文标题】在未安装 chrome 的情况下启动基于 selenium 的独立 exe【英文标题】:Launching selenium based stand alone exe without chrome installed 【发布时间】:2017-08-07 20:46:01 【问题描述】:我创建了一个使用 selenium 和 webdriver (Chromedriver) 的 python 脚本。完成这个脚本后,我使用 cx_freeze 将我的脚本编译成一个独立的 exe 文件,我可以双击它来执行脚本。但是,对于 selenium,我一直在使用我下载的 chromedriver 文件,该文件与我安装到我的电脑上的 chrome 应用程序一起工作。
我想做或尝试做的是让我的 exe 文件与 chromedriver 一起工作,而不要求用户将 google chrome 安装到他们的计算机上。无论如何我可以将chrome作为一个包包含在同一目录中以解决这个问题吗?
我也对其他想法持开放态度。
【问题讨论】:
【参考方案1】:您始终可以捆绑离线安装程序并提示安装它,然后运行可执行文件来安装它。 (可用here)
注意:您可能需要调查一些许可问题。
否则,请使用webbrowser.open('https://www.google.com/chrome/browser/')
将他们定向到 chrome 的安装页面。比如:
try:
selenium.webbrowser('chrome') # Or whatever the command is
except NameOfExceptionWhenNoBrowserHere:
# If you are opening the web page:
import webbrowser
INSTALL_PAGE = 'https://www.google.com/chrome/browser/'
print('You need to have Google chrome installed.')
print(INSTALL_PAGE)
if input('Open ' + INSTALL_PAGE + '? [yes/no]').lower().startswith('y'):
webbrowser.open(INSTALL_PAGE) # Uses default browser
# If you are running the offline installer
import subprocess
import os
_file_dir = os.path.dirname(os.path.realpath(__file__))
print('You need to have Google chrome installed.')
print('Will now open installer')
# _file_dir is the directory of the python file.
# If the installer is in the same directory, run it like this.
subprocess.call(os.path.join(_file_dir, 'install_chrome.exe'))
【讨论】:
以上是关于在未安装 chrome 的情况下启动基于 selenium 的独立 exe的主要内容,如果未能解决你的问题,请参考以下文章
在未安装 .Net Framework 的情况下运行 c# 3 应用程序?
在未安装 Excel 的情况下打开、计算、关闭 MS Excel 电子表格 [EPPlus]
是否可以在未安装 VS 的情况下从 MSBuild 命令行运行 FxCop 代码分析?
是否可以在未安装 CUDA 驱动程序的情况下运行 CUDA 程序或库?