问题标签 [cefpython]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
457 浏览

wxpython - 使用 wxPython 和 CEFPython 的具有多个选项卡的 Web 浏览器在 Windows 10 上不起作用

我尝试使用 wxPython 和 CEFPython 创建自己的浏览器。浏览器可以有多个选项卡,并且在每个选项卡中都应该打开 chromeWindow。部分代码如下。

每个选项卡都应在代码中使用 cefpython.CreateBrowserSync()。运行代码后,出现以下错误。我不知道如何解决它。

如果有人知道这个问题,请帮助我。

0 投票
0 回答
180 浏览

python - 尽管进行了清理,但关闭 cefpython 后的孤立子进程

我的 cefpython 程序在任务管理器中导致孤立subprocess.exe(我在 Windows 10 上)。(它们无限期地继续并使用大量 CPU。)

但它们仅在我在命令提示符中使用 Ctrl-C 结束程序时出现,而不是在我正常退出 GUI 窗口(例如从任务栏)时出现。

我知道在使用 cefpython 时,要在程序结束时进行清理,您需要

  1. 调用cef.Shutdown()
  2. 删除所有对 cef 浏览器的引用
  3. 将 cefpython 与 wxPython 一起使用时,删除对 wx App 的引用

(这些都在 cefpython 的 wxPython 示例中演示

我在我的程序中做了这些事情,如下图:

请注意,清理步骤在.stop()两种情况下都会发生,要么从 MainLoop 完成并调用后续的.stop(),要么从 Ctrl-C 触发 SIGINT 处理程序,即.stop().

在 cefpython 和 wxPython 之后还有什么需要清理的吗?

或者,有没有办法识别这些孤立的进程,以便在程序开始时杀死它们?(那么至少它们不会超过 1。)

编辑:
正如@Igor 所问,事实证明你可以在cefpython 的repo 的未修改示例中重现它!这有点罕见;我必须运行它,Ctrl-C,运行它,Ctrl-C 等,但最终我确实得到了一个孤立的 subprocess.exe,它无限期地使用 >20% 的 CPU。(请注意,我的系统没有受到特别的压力或任何压力。在重现问题之前它的 CPU 为 1-5%。)

在此处提交问题:https ://github.com/cztomczak/cefpython/issues/562

0 投票
0 回答
72 浏览

python-3.6 - 在cefpython3中打开不同的文件扩展名并安装插件

我正在为我的网络应用程序使用 django。在客户端我使用cef浏览器(cefpython3)。我的目标是在网络浏览器本身中打开一个文件。现在我可以打开 .txt、.py、.pdf、.png、.jpeg、.mp3 和 .mp4 扩展名。

  1. 当它们在同一个窗口中打开时,如何在单独的窗口中打开这些文件?
  2. .mp4 文件有时无法播放。但是当他们这样做时,他们会在没有音量控制和静音的情况下这样做?
  3. 是否有用于 cef 浏览器的 vlc 和 notepad++ 插件,如果有,如何安装?
  4. 还想打开 .doc、.docx、.xls、.xlsx、.ppt 和 .pptx 格式......有什么建议如何实现吗?
  5. 一般如何在 cefpython3 和我可以找到它们的任何站点中安装插件?(3的子部分)

谢谢

0 投票
1 回答
142 浏览

python - 使用 wxpython 和 cefpython3 禁用 windows 边框

对于cefpython3和wxpython,我正在关注这个示例https://github.com/cztomczak/cefpython/blob/master/examples/wxpython.py 。但是我希望禁用 Windows 边框,这样程序就不能再调整大小,并且它们没有标题栏。但我想保留它,以便程序可以在屏幕上移动。我做了一些研究,但没有找到成功做到这一点的方法。

0 投票
0 回答
101 浏览

ubuntu - 如何使用cefpython使浏览器背景透明?

如何使用cefpython在浏览器上将白色更改为透明?

已经检查了这个这个

但我不明白该怎么做

谢谢

0 投票
0 回答
77 浏览

python - cef加载URL时禁用任务栏图标闪烁

使用 cefpython 和 wxPython,我在 wx 窗口/面板中创建了一个 cef 浏览器。这个 cef 浏览器加载一个 URL。如果页面加载失败,它会重试。(我在启动 cef 浏览器时给它的 LoadHandler 提供了这种行为。见下文。)

每次重试时,任务栏中的程序图标都会闪烁橙色。我可以明白它为什么这样做,因为如果要显示新内容,它想告诉用户有新内容。但是,我不需要发生这种情况,特别是因为如果它无法加载页面,那么就没有理由继续 ping 用户。

有没有办法阻止任务栏图标闪烁橙色?

我猜这属于 cef 的域,因为它是浏览器尝试的页面加载触发它,但也许 wx 有一种方法来覆盖它,这也可能对我有用。

0 投票
1 回答
66 浏览

python - 编写 Python pip-able 包:如何访问包中的文件?

我正在尝试开发一个基于 CEFpython 技术的可视化包,因此该函数必须访问一个 html 文件。所以包的结构基本上是:

viz_tool

-->初始化.py

--> main.py

--> 索引.html

在 main.py 文件中,我定义了一个函数:

目标是,安装此软件包后,我可以执行以下操作:

但当然,目前“index_filepath”将是我当前的工作目录,因此它将无法找到“index.html”文件。

我应该如何更改代码以便可以访问“index.html”文件,该文件可能位于安装包的目录中?

非常感谢你!如果我需要澄清任何事情,请告诉我

0 投票
0 回答
126 浏览

python - CEFpython3 在 Mac 上的 MessageLoop 挂起

我已经使用 CEFPython 创建了一个包,它可以在 Windows 机器上完美运行。但是,当在 Mac 机器上使用时MessageLoop(),无论是否打开一个完全白色的窗口,脚本都会挂起。我正在使用 CEFpython3(版本 66.0)python 3.7 MacOS 10.15

这是我的脚本:(我开发了一个基于网络的可视化工具,需要“config”作为输入,“index_cefpython.html”是页面)

这是整个输出:

0 投票
1 回答
188 浏览

python - 在 python 脚本中硬编码 html 代码的正确方法?

我开发了一个基于 Web 的工具,目前正在尝试使其可通过 python 启动。我认为使用 CEFpython 可能是这样做的方法。我按照教程here并编写了以下代码:

不幸的是,与本教程不同的是,我的工具必须加载定义主要功能的本地 .js 文件(),如果我以这种方式编写 html 文件,我的工作目录实际上并不是我调用脚本的目录,而是一些奇怪的地方

这些行的输出是:

输出:

你能帮我找到用正确路径在python中硬编码html代码的正确方法吗?也许我需要以某种方式设置路径?

PS:我确实尝试将 html 代码包含在一个单独的 .html 文件中,它可以在 Windows 机器上运行,但似乎 MacOS 不喜欢它。由于本教程确实适用于 MAC,我正在尝试将 html 部分硬编码到 python 脚本中,并希望它适用于 Windows 和 Mac

0 投票
0 回答
96 浏览

python - 使用 Selenium 连接到 CefPython 实例

经过大量的谷歌搜索后,我不知道如何使用 Selenium 连接到CefPython(Chrome 嵌入式框架)浏览器实例。

我看到了两种可能的方法:

  1. 使用 Selenium 直接启动 CefPython 实例,或
  2. 独立启动一个 CefPython 实例,然后使用 Selenium 连接到它。

我一直在寻找类似的问题,但它们要么有非工作代码(旧版本?),要么似乎正在尝试做其他事情,我找不到任何实际工作代码片段作为答案。因此,作为起点,这里是使用 Selenium 启动 Chrome 的工作代码,但使用标准的非 CEF Chrome 实例:

选项 1(工作;使用 Selenium 启动标准 Chrome.exe)

选项 2(工作;启动 Chrome.exe 然后使用 Selenium 连接到它)

在此示例中,“driver2”是远程连接到由“driver”创建的已运行实例的实例。

但是当我尝试使用 CefPython 进行这项工作时,我不知道该怎么做。

选项 1(不工作;CefPython 实例)

尝试使用 CefPython 的选项 1 在引发异常之前会挂起一段时间。我看到 Selenium 可以用来启动的 CefPython 包中唯一的可执行文件是 subprocess.exe 文件,但显然这不仅仅是 chrome.exe 的替代品。

此代码与上面的“选项 1”代码相同,只是它将 chrome_path 交换为 subprocess.exe 二进制文件。

选项 2(不工作;CefPython 实例)

在这里,我尝试独立启动 CEFPython,然后使用 Selenium 连接到它。尝试这样做会让我需要一个 executor_url 和一个会话 ID,但是我终其一生都无法弄清楚如何从正在运行的 CefPython 实例中获取这些:

我正在使用 2.40 版本的 ChromeDriver,因为最新版本的 CefPython使用Chrome 版本 66,而这又需要 2.40 版本的 chromedriver。

任何帮助表示赞赏。