1

我正在尝试登录雅虎邮箱。这是我的代码,但我无法正确运行它。可能脚本的结构是错误的。这里我使用 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()
4

0 回答 0