Как зайти на сайт используя webkit - PullRequest
1 голос
/ 14 декабря 2011

Я пытаюсь выполнить вход в Yahoo Mail.Это мой код, но я не могу его правильно запустить.Вероятно, структура скрипта неверна.Здесь я использую webkit и gtk.Если вы знаете другие способы реализации этой функции, предложите мне.В любом случае мне нужно использовать javascript при входе в систему. Спасибо за вашу помощь.

import gtk
from webkit import WebView, WebSettings
from getpass import getpass
import gobject

class MyClass:

    __timeout=5
    __load=False
    login = ("", "")
    settings = {'username': login[0] or raw_input("Username: "), 'password': login[1] or getpass()}

    def connect(self):
        def onLoadFinished(view,frame):
            self.__load=True
        s=self.view.connect('load-finished',onLoadFinished)
        self.view.open("https://login.yahoo.com/config/login_verify2?.intl=it&.src=ym&rl=1")
        print "Loading yahoo.it"
        while not self.__load:
            pass
        self.__load=False
        self.view.execute_script("document.getElementById('username').value='%s';" % self.settings['username'])
        self.view.execute_script("document.getElementById('passwd').value='%s';" % self.settings['password'])
        self.view.execute_script("document.getElementById('.save').click();")
        while not self.__load:
            pass
        self.__load=False
        self.view.execute_script("document.getElementById('inbox-label').click()")

    def __init__(self):
        w_ = gtk.Window()
        s_ = gtk.ScrolledWindow()
        self.view = WebView()
        s_.add(self.view)
        w_.add(s_)
        w_.show_all();

    def callback(self):
        self.connect() 
        gobject.timeout_add_seconds(self.__timeout, self.callback)


MyClass()
gtk.main()
...