代码运行出现错误的原因是在调用simulate_shortcut()函数时缺少了success_varfailure_var两个参数。根据代码,simulate_shortcut()函数需要接收这两个参数来更新成功执行和失败执行的次数。因此,在调用simulate_shortcut()函数时,需要将success_varfailure_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_varwindow.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_varfailure_var作为参数。

这样修改之后,再次运行代码应该就不会出现缺少参数的错误了

为什么运行代码后输入FfiddlerFiddlerexe后python提示Fpythonpythonexe Fpython1111111111fiddler应用7py 成功激活 Fiddler ClassicException in Tkinter callbackTraceback most recent call last File Fpythonlibtkinter__init__py l

原文地址: https://www.cveoy.top/t/topic/iz1c 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录