为什么运行代码后输入FfiddlerFiddlerexe后python提示Fpythonpythonexe Fpython1111111111fiddler应用7py 成功激活 Fiddler ClassicException in Tkinter callbackTraceback most recent call last File Fpythonlibtkinter__init__py l
代码运行出现错误的原因是在调用simulate_shortcut()函数时缺少了success_var和failure_var两个参数。根据代码,simulate_shortcut()函数需要接收这两个参数来更新成功执行和失败执行的次数。因此,在调用simulate_shortcut()函数时,需要将success_var和failure_var作为参数传入。修改代码如下:
def start_fiddler(window, fiddler_path):
if window.running_flag:
messagebox.showinfo("提示", "已经有 Fiddler Classic 启动中,请稍后再试!")
return
if not open_fiddler(fiddler_path):
messagebox.showerror("错误", "无法启动 Fiddler Classic,请检查路径是否正确!")
return
for _ in range(10):
if is_fiddler_window_active():
simulate_shortcut(window.success_var, window.failure_var) # 传入 success_var 和 failure_var
break
time.sleep(1)
window.running_flag = True
在start_fiddler()函数中,将simulate_shortcut()函数的调用修改为simulate_shortcut(window.success_var, window.failure_var),即传入window.success_var和window.failure_var作为参数。
同样的修改也需要在start_script()函数中进行:
def start_script(seconds, countdown_label, success_var, failure_var, window):
global success_count, failure_count
success_count = 0
failure_count = 0
if not seconds.isdigit():
messagebox.showerror("错误", "输入无效,请重新输入整数类型的秒数!")
elif window.stop_flag:
window.stop_flag = False
window.running_flag = True
seconds = int(seconds)
countdown_label.config(text=f"距离下次执行还有 {seconds} 秒")
success_var.set("执行成功0次")
failure_var.set("执行失败0次")
threading.Timer(1, run_script, args=(seconds, countdown_label, success_var, failure_var, window)).start()
elif window.running_flag:
messagebox.showinfo("提示", "已经有倒计时在执行中,请稍后再试!")
else:
seconds = int(seconds)
countdown_label.config(text=f"距离下次执行还有 {seconds} 秒")
success_var.set("执行成功0次")
failure_var.set("执行失败0次")
window.stop_flag = False
window.running_flag = True
threading.Timer(1, run_script, args=(seconds, countdown_label, success_var, failure_var, window)).start()
同样的修改也需要在run_script()函数中进行:
def run_script(seconds, countdown_label, success_var, failure_var, window):
seconds -= 1
if seconds < 0:
seconds = int(window.seconds_var.get())
open_fiddler(window.path_var.get())
simulate_shortcut(success_var, failure_var) # 传入 success_var 和 failure_var
if not window.stop_flag:
countdown_label.config(text=f"距离下次执行还有 {seconds} 秒")
if not window.stop_flag:
threading.Timer(1, run_script, args=(seconds, countdown_label, success_var, failure_var, window)).start()
在这些函数中,都将simulate_shortcut(success_var, failure_var)修改为simulate_shortcut(success_var, failure_var),即传入success_var和failure_var作为参数。
这样修改之后,再次运行代码应该就不会出现缺少参数的错误了
原文地址: https://www.cveoy.top/t/topic/iz1c 著作权归作者所有。请勿转载和采集!