问题标签 [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.
wxpython - 使用 wxPython 和 CEFPython 的具有多个选项卡的 Web 浏览器在 Windows 10 上不起作用
我尝试使用 wxPython 和 CEFPython 创建自己的浏览器。浏览器可以有多个选项卡,并且在每个选项卡中都应该打开 chromeWindow。部分代码如下。
每个选项卡都应在代码中使用 cefpython.CreateBrowserSync()。运行代码后,出现以下错误。我不知道如何解决它。
如果有人知道这个问题,请帮助我。
python - 尽管进行了清理,但关闭 cefpython 后的孤立子进程
我的 cefpython 程序在任务管理器中导致孤立subprocess.exe
(我在 Windows 10 上)。(它们无限期地继续并使用大量 CPU。)
但它们仅在我在命令提示符中使用 Ctrl-C 结束程序时出现,而不是在我正常退出 GUI 窗口(例如从任务栏)时出现。
我知道在使用 cefpython 时,要在程序结束时进行清理,您需要
- 调用cef.Shutdown()。
- 删除所有对 cef 浏览器的引用
- 将 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%。)
python-3.6 - 在cefpython3中打开不同的文件扩展名并安装插件
我正在为我的网络应用程序使用 django。在客户端我使用cef浏览器(cefpython3)。我的目标是在网络浏览器本身中打开一个文件。现在我可以打开 .txt、.py、.pdf、.png、.jpeg、.mp3 和 .mp4 扩展名。
- 当它们在同一个窗口中打开时,如何在单独的窗口中打开这些文件?
- .mp4 文件有时无法播放。但是当他们这样做时,他们会在没有音量控制和静音的情况下这样做?
- 是否有用于 cef 浏览器的 vlc 和 notepad++ 插件,如果有,如何安装?
- 还想打开 .doc、.docx、.xls、.xlsx、.ppt 和 .pptx 格式......有什么建议如何实现吗?
- 一般如何在 cefpython3 和我可以找到它们的任何站点中安装插件?(3的子部分)
谢谢
python - 使用 wxpython 和 cefpython3 禁用 windows 边框
对于cefpython3和wxpython,我正在关注这个示例https://github.com/cztomczak/cefpython/blob/master/examples/wxpython.py 。但是我希望禁用 Windows 边框,这样程序就不能再调整大小,并且它们没有标题栏。但我想保留它,以便程序可以在屏幕上移动。我做了一些研究,但没有找到成功做到这一点的方法。
python - cef加载URL时禁用任务栏图标闪烁
使用 cefpython 和 wxPython,我在 wx 窗口/面板中创建了一个 cef 浏览器。这个 cef 浏览器加载一个 URL。如果页面加载失败,它会重试。(我在启动 cef 浏览器时给它的 LoadHandler 提供了这种行为。见下文。)
每次重试时,任务栏中的程序图标都会闪烁橙色。我可以明白它为什么这样做,因为如果要显示新内容,它想告诉用户有新内容。但是,我不需要发生这种情况,特别是因为如果它无法加载页面,那么就没有理由继续 ping 用户。
有没有办法阻止任务栏图标闪烁橙色?
我猜这属于 cef 的域,因为它是浏览器尝试的页面加载触发它,但也许 wx 有一种方法来覆盖它,这也可能对我有用。
python - 编写 Python pip-able 包:如何访问包中的文件?
我正在尝试开发一个基于 CEFpython 技术的可视化包,因此该函数必须访问一个 html 文件。所以包的结构基本上是:
viz_tool
-->初始化.py
--> main.py
--> 索引.html
在 main.py 文件中,我定义了一个函数:
目标是,安装此软件包后,我可以执行以下操作:
但当然,目前“index_filepath”将是我当前的工作目录,因此它将无法找到“index.html”文件。
我应该如何更改代码以便可以访问“index.html”文件,该文件可能位于安装包的目录中?
非常感谢你!如果我需要澄清任何事情,请告诉我
python - CEFpython3 在 Mac 上的 MessageLoop 挂起
我已经使用 CEFPython 创建了一个包,它可以在 Windows 机器上完美运行。但是,当在 Mac 机器上使用时MessageLoop()
,无论是否打开一个完全白色的窗口,脚本都会挂起。我正在使用 CEFpython3(版本 66.0)python 3.7 MacOS 10.15
这是我的脚本:(我开发了一个基于网络的可视化工具,需要“config”作为输入,“index_cefpython.html”是页面)
这是整个输出:
python - 在 python 脚本中硬编码 html 代码的正确方法?
我开发了一个基于 Web 的工具,目前正在尝试使其可通过 python 启动。我认为使用 CEFpython 可能是这样做的方法。我按照教程here并编写了以下代码:
不幸的是,与本教程不同的是,我的工具必须加载定义主要功能的本地 .js 文件(),如果我以这种方式编写 html 文件,我的工作目录实际上并不是我调用脚本的目录,而是一些奇怪的地方
这些行的输出是:
输出:
你能帮我找到用正确路径在python中硬编码html代码的正确方法吗?也许我需要以某种方式设置路径?
PS:我确实尝试将 html 代码包含在一个单独的 .html 文件中,它可以在 Windows 机器上运行,但似乎 MacOS 不喜欢它。由于本教程确实适用于 MAC,我正在尝试将 html 部分硬编码到 python 脚本中,并希望它适用于 Windows 和 Mac
python - 使用 Selenium 连接到 CefPython 实例
经过大量的谷歌搜索后,我不知道如何使用 Selenium 连接到CefPython(Chrome 嵌入式框架)浏览器实例。
我看到了两种可能的方法:
- 使用 Selenium 直接启动 CefPython 实例,或
- 独立启动一个 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。
任何帮助表示赞赏。