【发布时间】:2021-11-11 12:30:17
【问题描述】:
我的程序在 while 循环中有很多任务要做我需要制作一个按钮来打破循环 这是一个例子:
from tkinter import *
from selenium import webdriver
from time import sleep
class screen():
def __init__(self):
self.no = 1
def close(self):
#what should i do?
def go(self,a,b,c,d):
self.close = Button(self.window, text=f"{d}close", width=10, height=2, command=self.close)
self.close.grid(row=4+d,column=1,columnspan=3,padx=5, pady=5)
driver = webdriver.Chrome(executable_path="webdriver")
while True:
driver.get(a)
sleep(11)
print("1 done")
driver.get(b)
sleep(5)
print("2 done")
driver.get(c)
sleep(5)
print("3 done")
print(f"we will go to your {d}th 3 website again")
driver.close()
def start(self):
a = self.Entry1.get()
b = self.Entry2.get()
c = self.Entry3.get()
self.no = self.no + 1
thread = threading.Thread(target=self.go, args=[a,b,c,self.no], daemon=True).start()
def tkin(self):
self.window = Tk()
self.window.title("selenium task")
self.label1 = Label(self.window, text="enter your 1 website")
self.Entry1 = Entry(self.window)
self.label2 = Label(self.window, text="enter your 2 website")
self.Entry2 = Entry(self.window)
self.label3 = Label(self.window, text="enter your 3 website")
self.Entry3 = Entry(self.window)
self.button = Button(self.window, text="start", width = 10 , height = 2 , command = self.start)
self.label1.grid(row=1,column=1, columnspan = 3, padx=5, pady=5)
self.Entry1.grid(row=1,column=2, columnspan = 3, padx=5, pady=5)
self.label2.grid(row=2,column=1, columnspan = 3, padx=5, pady=5)
self.Entry2.grid(row=2,column=2, columnspan = 3, padx=5, pady=5)
self.label3.grid(row=3,column=1, columnspan = 3, padx=5, pady=5)
self.Entry4.grid(row=3,column=2, columnspan = 3, padx=5, pady=5)
self.button.grid(row=4,column=1, columnspan = 3, padx=5, pady=5)
我需要在任何网站上点击关闭按钮来打破这个循环(1 或 2 或 3 我不知道用户何时会点击)或关闭我点击关闭编号的 selenium 的方法
【问题讨论】:
标签: python multithreading selenium tkinter