我正在尝试使用 cefpython 制作一个混合 python-js 应用程序。
我想拥有:
以下似乎可以加载第一页:
browser = cef.CreateBrowserSync(url='file:///html/index.html',
window_title="Rulr 2.0")
Run Code Online (Sandbox Code Playgroud)
但是,我随后遇到了 CORS 问题。我还需要运行网络服务器吗?或者是否有处理本地文件的有效模式?
我试图运行位于简单Kivy应用在这里的OSX.
起初,CEF在初始化期间失败.输出是:
igskcicgltgm047:Kivy_Test dslosky$ kivy cefTest4.py
[INFO ] [Logger ] Record log in /Applications/Kivy.app/Contents/Resources/.kivy/logs/kivy_15-07-09_18.txt
[INFO ] [Kivy ] v1.9.0
[INFO ] [Python ] v2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)]
[INFO ] [Factory ] 173 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_imageio, img_dds, img_gif, img_sdl2 (img_pil, img_ffpyplayer ignored)
[INFO ] [OSC ] using <multiprocessing> for socket
[INFO ] [Window ] Provider: sdl2
[INFO ] [GL ] OpenGL version <2.1 NVIDIA-10.2.1 …Run Code Online (Sandbox Code Playgroud) 我正在 Python3 中的一个项目中工作,其中我在 tkinter 中拥有 tkinter 和带有 cef 浏览器的框架。这是代码。
from tkinter import messagebox
#import threading
from cefpython3 import cefpython as cef
import platform
import sys
from tkinter import *
import time
def on_closing ():
print('closing')
r.destroy()
cef.Shutdown()
r = Tk()
r.geometry('800x600')
r.protocol('WM_DELETE_WINDOW', on_closing)
f = Frame(r, bg = 'blue', height = 200)
f.pack(side = TOP, fill = 'x')
g=Frame(r,bg = 'white',height = 200)
g.pack(side = TOP, fill = 'x')
b1 = Button (g,text='Exit',command = on_closing)
b1.pack (side = LEFT)
b2 …Run Code Online (Sandbox Code Playgroud) 当我尝试browser.ExecuteJavascript("alert('ExecuteJavaScript works!');")它工作正常(在创建浏览器时弹出警报).当我尝试browser.ExecuteJavascript("document.getElementsByName('q')[0] .value = 24;")没有任何反应.所以我知道ExecuteJavascript正在运行,但是当我尝试设置输入元素的值时,输入元素不会改变?我正在尝试的代码如下,如果有人知道为什么特定的Javascript将无法执行,我将非常感激.
from cefpython3 import cefpython as cef
import platform
import sys
def main():
sys.excepthook = cef.ExceptHook
cef.Initialize()
browser = cef.CreateBrowserSync(url="https://www.google.com", window_title="Hello World!")
browser.ExecuteJavascript("document.getElementsByName('q')[0].value = 24")
cef.MessageLoop()
cef.Shutdown()
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)