Python 我登录facebook的tkinter用户界面没有';我不能正常工作

Python 我登录facebook的tkinter用户界面没有';我不能正常工作,python,tkinter,Python,Tkinter,我对学习python有点陌生,我想为我从书中学习到的程序制作一个UI。该程序在chrome上打开Facebook并让您登录,但无法正常使用UI from tkinter import * from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait class Facebook(Frame): def __init__(self,window): Frame

我对学习python有点陌生,我想为我从书中学习到的程序制作一个UI。该程序在chrome上打开Facebook并让您登录,但无法正常使用UI

from tkinter import *
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

class Facebook(Frame):
    def __init__(self,window):

        Frame.__init__(self,window,padx=12,pady=12)

        window.title("FBGiriş")
        window.geometry("350x200+50+50")
        self.lab1 = Label(window, text="email adress: ", bg="grey", 
borderwidth=2, relief=GROOVE)
        self.lab1.place(x=20, y=40)
        self.lab2 = Label(window, text="password: ", bg="grey", 
borderwidth=2, relief=GROOVE)
        self.lab2.place(x=40, y=80)


       self.ent1 = Entry(window, bg="cyan", relief=GROOVE, borderwidth=2)
       self.ent2 = Entry(window, bg="cyan", relief=GROOVE, borderwidth=2)

      self.ent1.place(x=140, y=40)
      self.ent2.place(x=140, y=80)

      self.gButton = Button(window, text="Login", relief=GROOVE, 
command=self.face, borderwidth=5, bg="red")
      self.gButton.place(x=260, y=120)

   def face(self):

       self.driver = webdriver.Chrome("C:\webdrivers\chromedriver.exe")
       self.driver.get("https://www.facebook.com/")
       self.fbLogin()

   def fbLogin(self):

       #self.face()
       driver = self.driver

       self.ent1 = str(self.ent1)
       self.ent2 = str(self.ent2)
       username = self.ent1

       password = self.ent2

       emailid = 'email'
       passid = 'pass'
       loginid = "loginbutton"
       logoclass = "_48pw"
       emailbox = WebDriverWait(driver,10).until(lambda driver: 
driver.find_element_by_id(emailid))
       passbox = WebDriverWait(driver,10).until(lambda driver: 
driver.find_element_by_id(passid))
       loginButton = WebDriverWait(driver,10).until(lambda driver: 
driver.find_element_by_id(loginid))
       emailbox.click()
       emailbox.clear()
       emailbox.send_keys(username)

       passbox.click()
       passbox.clear()
       passbox.send_keys(password)


       loginButton.click()

       WebDriverWait(driver,10).until(lambda driver: 
driver.find_element_by_class_name(logoclass))

if __name__ == '__main__':

    root = Tk()
    app = Facebook(root)
    app.mainloop()
当我在文本框中键入电子邮件和密码,然后单击登录时,用户界面会在chrome上打开facebook。但无论我在输入文本框中键入什么,它都会在facebook上键入随机数:

屏幕截图:

输入

预期产量

电流(不正确)输出


随机数是对
tkinter
条目
s
self.ent1
self.ent2
的引用。您需要的是这些条目的内容,您需要对条目调用
get
方法来获取它们的内容

更改此项:

username = self.ent1
password = self.ent2
致:

此外,在
Tkinter
小部件的实例上调用
str
,不会提供任何有用的输出,因此以下代码没有帮助:

self.ent1 = str(self.ent1)
self.ent2 = str(self.ent2)
您似乎也有一些缩进错误,这是完整的代码,我可以用它登录Facebook:

from tkinter import *
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

class Facebook(Frame):
    def __init__(self,window):
        Frame.__init__(self,window,padx=12,pady=12)

        window.title("FBGiris")
        window.geometry("350x200+50+50")
        self.lab1 = Label(window, text="email adress: ", bg="grey", borderwidth=2, relief=GROOVE)
        self.lab1.place(x=20, y=40)
        self.lab2 = Label(window, text="password: ", bg="grey", borderwidth=2, relief=GROOVE)
        self.lab2.place(x=40, y=80)


        self.ent1 = Entry(window, bg="cyan", relief=GROOVE, borderwidth=2)
        self.ent2 = Entry(window, bg="cyan", relief=GROOVE, borderwidth=2)

        self.ent1.place(x=140, y=40)
        self.ent2.place(x=140, y=80)

        self.gButton = Button(window, text="Login", relief=GROOVE, command=self.face, borderwidth=5, bg="red")
        self.gButton.place(x=260, y=120)


    def face(self):
        self.driver = webdriver.Chrome("C:\webdrivers\chromedriver.exe")
        self.driver.get("https://www.facebook.com/")
        self.fbLogin()

    def fbLogin(self):
        #self.face()
        driver = self.driver

        username = self.ent1.get()
        password = self.ent2.get()

        emailid = 'email'
        passid = 'pass'
        loginid = "loginbutton"
        logoclass = "_48pw"
        emailbox = WebDriverWait(driver,10).until(lambda driver: driver.find_element_by_id(emailid))
        passbox = WebDriverWait(driver,10).until(lambda driver: driver.find_element_by_id(passid))
        loginButton = WebDriverWait(driver,10).until(lambda driver: driver.find_element_by_id(loginid))

        emailbox.click()
        emailbox.clear()
        emailbox.send_keys(username)

        passbox.click()
        passbox.clear()
        passbox.send_keys(password)

        loginButton.click()

        WebDriverWait(driver,10).until(lambda driver: 
        driver.find_element_by_class_name(logoclass))   

if __name__ == '__main__':

    root = Tk()
    app = Facebook(root)
    app.mainloop()

请给出一个预期输出的例子。@ZacharyEspiritu我想我不能直接把图像放在这里,所以输入:输出:而不是预期输出(example@hotmail.com和密码),程序键入随机数。
from tkinter import *
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

class Facebook(Frame):
    def __init__(self,window):
        Frame.__init__(self,window,padx=12,pady=12)

        window.title("FBGiris")
        window.geometry("350x200+50+50")
        self.lab1 = Label(window, text="email adress: ", bg="grey", borderwidth=2, relief=GROOVE)
        self.lab1.place(x=20, y=40)
        self.lab2 = Label(window, text="password: ", bg="grey", borderwidth=2, relief=GROOVE)
        self.lab2.place(x=40, y=80)


        self.ent1 = Entry(window, bg="cyan", relief=GROOVE, borderwidth=2)
        self.ent2 = Entry(window, bg="cyan", relief=GROOVE, borderwidth=2)

        self.ent1.place(x=140, y=40)
        self.ent2.place(x=140, y=80)

        self.gButton = Button(window, text="Login", relief=GROOVE, command=self.face, borderwidth=5, bg="red")
        self.gButton.place(x=260, y=120)


    def face(self):
        self.driver = webdriver.Chrome("C:\webdrivers\chromedriver.exe")
        self.driver.get("https://www.facebook.com/")
        self.fbLogin()

    def fbLogin(self):
        #self.face()
        driver = self.driver

        username = self.ent1.get()
        password = self.ent2.get()

        emailid = 'email'
        passid = 'pass'
        loginid = "loginbutton"
        logoclass = "_48pw"
        emailbox = WebDriverWait(driver,10).until(lambda driver: driver.find_element_by_id(emailid))
        passbox = WebDriverWait(driver,10).until(lambda driver: driver.find_element_by_id(passid))
        loginButton = WebDriverWait(driver,10).until(lambda driver: driver.find_element_by_id(loginid))

        emailbox.click()
        emailbox.clear()
        emailbox.send_keys(username)

        passbox.click()
        passbox.clear()
        passbox.send_keys(password)

        loginButton.click()

        WebDriverWait(driver,10).until(lambda driver: 
        driver.find_element_by_class_name(logoclass))   

if __name__ == '__main__':

    root = Tk()
    app = Facebook(root)
    app.mainloop()