我试图使用pygtk + WebKit自动进行谷歌搜索。如何在输入字段中插入一些搜索查询然后提交?执行javascript无效。
from gi.repository import WebKit
from gi.repository import Gtk, Gdk
def get_source(webobj, frame):
web.execute_script("document.getElementById('gbqfq').value='test';")
win = Gtk.Window()
web = WebKit.WebView()
web.open("http://google.com")
web.connect("load-finished", get_source)
win.add(web)
win.show_all()
Gtk.main()
答案 0 :(得分:1)
最后我得到了一些小改动。感谢@ user871199和@Syed
from gi.repository import WebKit
from gi.repository import Gtk, Gdk
def get_source(webobj, frame):
doc = web.get_dom_document()
element = doc.get_elements_by_name("q")
child = element.item(0)
child.set_value("test")
SubBtn = doc.get_elements_by_name("btnG")
btn = SubBtn.item(0)
btn.click()
win = Gtk.Window()
web = WebKit.WebView()
web.open("http://google.com")
web.connect("load-finished", get_source)
win.add(web)
win.connect('destroy', lambda w: Gtk.main_quit())
win.show_all()
Gtk.main()
答案 1 :(得分:0)
为什么不能尝试这样?
from gi.repository import WebKit
from gi.repository import Gtk, Gdk
def get_source(webobj, frame):
web.execute_script("document.getElementById('gbqfq').value='test';")
web.execute_script("document.getElementById('gbqf').submit();")
win = Gtk.Window()
web = WebKit.WebView()
web.open("http://google.com/")
web.connect("load-finished", get_source)
win.add(web)
win.show_all()
Gtk.main()
你为什么试着这样做?使用WebKit
进行搜索查询是否值得?
答案 2 :(得分:0)
见下文。
要查找python支持的方法和可用的对象,请在Ubuntu平台上查看文件/usr/share/gir-1.0/WebKit-3.0.gir。我不记得我是如何获得该文件的,但我认为如果安装了dev版本的库,它就会被安装。当您使用GIR及其相应的名称时,这将为您提供Webkit / python支持的所有API。
from gi.repository import WebKit
from gi.repository import Gtk, Gdk
def get_source(webobj, frame):
doc = web.get_dom_document()
element = doc.get_element_by_id("gbqfq")
element.set_value("test");
win = Gtk.Window()
web = WebKit.WebView()
web.open("http://google.com")
web.connect("load-finished", get_source)
win.add(web)
win.show_all()
Gtk.main()