在未安装 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 程序或库?

如何在未安装 office 的情况下从 winform vb.net 2008 导出到 excel?

protractor - 启动 chrome 以禁用 cors 的网络安全