所以我写一个简单的硒脚本做一些动作在网络上。脚本工作得很好,出于无聊,我决定让它有一个GUI,以及。我不知道我做错了什么。它启动了chrome web驱动程序,但gui从未运行。
from tkinter import *
from selenium import webdriver
browser = webdriver.Chrome()
root = Tk()
root.geometry('285x179')
root.configure(background='#F0F8FF')
root.title('MC Vote')
pageField=Entry(root)
pageField.place(x=74, y=26)
voteField=Entry(root)
voteField.place(x=75, y=75)
page=pageField.get()
upvoteCSS=voteField.get()
accounts = ['1','2','3','4']
browser.get(page)
browser.maximize_window()
def btnClickFunction():
for i in accounts:
upvoteButton = browser.find_element_by_css_selector(upvoteCSS)
upvoteButton.click()
browser.get(page)
Button(root, text='Start bot', bg='#F0F8FF', font=('arial', 12, 'normal'), command=btnClickFunction).place(x=99,y=124)
root.mainloop()
Traceback (most recent call last):
File "C:UsersPycharmProjectsTrainingaccounts.py", line 36, in <module>
browser.get(page)
GUI
不像input()
那样工作。当你创建pageField()
,然后它不会等待你的文本。它只通知tkinter
它必须显示什么小部件。当你运行mainloop()
时,它会创建窗口并显示小部件。因此,您尝试从pageField
获取值,甚至在窗口中显示pageField
之前。您必须使用Button
来运行函数,该函数在您将文本放入pageField
并按下按钮后从pageField
获取值。
最小的例子
import tkinter as tk # PEP8: `import *` is not preferred
from selenium import webdriver
# --- functions --- (PEP8: lower_case_names)
def btn_click_function():
page = pageField.get()
upvote_css = vote_field.get()
browser.get(page)
browser.maximize_window()
for _ in range(4):
upvote_button = browser.find_element_by_css_selector(upvote_css)
upvote_button.click()
browser.get(page)
# --- main --- (PEP8: lower_case_names)
browser = webdriver.Chrome()
root = tk.Tk()
page_field = tk.Entry(root)
page_field.pack()
vote_field = tk.Entry(root)
vote_field.pack()
button = tk.Button(root, text='Start bot', command=btn_click_function)
button.pack()
root.mainloop()
PEP 8——Python代码风格指南