2011-04-04 2 views
0

私はubuntuを初めて使用しています。 私はpythonwebkitとpywebkitgtkをubuntuにインストールしたいが、長い時間試してみた。私はこのコードをexcute場合でもthongth私は渡すことはできません、ubuntuにpythonwebkitとpywebkitgtkをインストールするには?

#!/usr/bin/env python 

import pygtk 
pygtk.require("2.0") 
import gi 
from gi.repository import WebKit as webkit, Gtk as gtk 

dir(gtk) 
print dir(gtk.WindowType) 

init_string=""" 



<div id="testing">testing</div> 
<div><button id="link">CLICK ME</button> 


""" 

class Browser: 
    # Ventana del programa 
    def __init__(self): 
     self.window = gtk.Window(type=gtk.WindowType.TOPLEVEL) 
     self.window.set_position(gtk.WindowPosition.CENTER) 
     self.window.set_default_size(800, 600) 
     self.window.fullscreen() 
     self.window.connect("destroy", self.on_quit) 

     # Un vBox, en la parte de arriba hay una caja para ingresar 
     # la direccion web, y abago se muestra la pagina 
     vbox = gtk.VBox() 

     # La parte en donde se muestra la pagina que se visita (con scroll incluido) 
     self.scroll_window = gtk.ScrolledWindow() 
     self.webview = webkit.WebView() 
     print dir(self.webview) 

     #self.scroll_window.add(self.webview) 

     # Unimos todo en el vBox 
     #vbox.pack_start(self.url_text, True, False, 0) 
     # El expand=False al empaquetarlo es para que el entry no ocupe media pantalla 
     #vbox.pack_start(self.scroll_window, True, True, 0) 
     #self.window.add(vbox) 
     self.window.add(self.webview) 
     self.window.show_all() 
     self.webview.load_string(init_string, "text/html", "utf-8", '#') 
     doc = self.webview.get_dom_document() 
     self.webview.connect('document-load-finished', self.onLoad) 
     print doc 
     print dir(doc) 

    def onLoad(self, param1, param2): 
     print "STARTING" 
     doc = self.webview.get_dom_document() 
     div = doc.get_element_by_id('testing') 
     print div 
     print dir(div) 
     print div.get_inner_html() 
     div.set_inner_html('DYNAMIC TEXT') 

     link = doc.get_element_by_id('link') 
     #print link 
     #print dir(link) 
     link.connect('click-event', self.onClick, link) 
     #div.connect_object('click-event', self.onClick, link) 

    def print_childs(self, elem): 
     childs = elem.get_child_nodes() 
     for c in range(childs.get_length()): 
      i=childs.item(c) 
      #print dir(i) 
      print "%s - %s\n" %(i.get_tag_name(), i.get_inner_html()) 
      self.print_childs(i) 

    def onClick(self, p1, p2, p3=None): 
     print "CLICKED - %s %s %s " % (str(p1), str(p2), str(p3)) 
     #return False 

    def on_quit(self, widget): 
     gtk.main_quit() 

if __name__ == "__main__": 
    browser = Browser() 
    try: 
     while True: 
      gtk.main_iteration() 
    except: 
     gtk.quit() 
     print "BAILING OUT!" 

"()のdoc = self.webview.get_dom_document" をインストールすることができますが、エラーはWebViewのがget_dom_document attrのを持っていないです。 私は何ができますか?私はドムツリーにアクセスしなければなりません。 pythonwebkitまたはpywebkitgtkをインストールする方法は間違っていますが、私は正しいことをすることはできません。 誰かが助けることができますか?

+0

あなたはこれに対する答えを見つけましたか? GIRファイルがGetElementsById関数をPythonに適切にエクスポートしないように見えます。 –

答えて

0

importディレクティブをインタープリタで実行します。

例外が発生しない場合(エラーが発生した場所から集まるように)、問題はライブラリのインストールではほとんどなく、Ubuntuとは関係ありません。

Pythonは 'ちょっと、これは正しくインストールされていません'と言っているわけではありません。'ねえ、このオブジェクトを間違って処理しています!あなたが到達したい機能はそこにありません!

問題のドキュメントを再確認し、DOMツリーを取得する方法を参照してください。

編集 - 私は高速なGoogleクエリからこれを得ました。

def _view_load_finished_cb(self, view, frame): 
     doc = frame.get_dom_document() 
     nodes = doc.getElementsByTagName('body') 
     body = nodes.item(0) 

DOMツリーを提供していないオブジェクトからDOMツリーにアクセスしようとしています。

関連する問題