[问题] 我想以编程方式在wx.html2.WebView wxpython对象中编写一些文本。
[CODE]
import wx
import wx.html2
app = wx.App(False)
frame = wx.Frame(None, -1, 'test')
browser = wx.html2.WebView.New(frame)
browser.LoadURL("https://www.python.org/")
browser.RunScript("document.getElementById('id-search-field').value = test")
frame.Show()
app.MainLoop()
[当前输出]: textBox
中没有任何内容被填充[希望输出]: 文本应写在textBox
中答案 0 :(得分:3)
您需要注册一个事件处理程序,以便在页面加载后调用browser.RunScript
。否则,RunScript
将无效,因为调用该函数时页面将不会就绪。
除此之外,应引用test
来表示javascript中的字符串:
import wx
import wx.html2
app = wx.App(False)
frame = wx.Frame(None, -1, 'test')
browser = wx.html2.WebView.New(frame)
def loaded(e):
if e.GetURL() == 'about:blank': # Skip if it's a blank page.
return
browser.RunScript("document.getElementById('id-search-field').value = 'test'")
browser.Bind(wx.html2.EVT_WEBVIEW_LOADED, loaded)
browser.LoadURL("https://www.python.org/")
frame.Show()
app.MainLoop()