How do i fix tkinter GUI freezing when i start Pyppeteer process?

48 Views Asked by At

I've been looking for a solution for this, but seems its more specific than most answers

What im trying to do:

  • Fix tkinter (or any other custom library) GUI freezing when the Pyppeteer process is called

What i tried:

  • Tried to put Pyppeteer process into another thread, this gave me an error "Pyppeteer process can only be ran on main thread" There's my code:
import tkinter as tk
import asyncio
from pyppeteer import launch

class App(tk.Tk):
    def __init__(app):
        def start():
            sessionCount = 1
            login = 'login'
            password = 'password'
            asyncio.get_event_loop().run_until_complete(runSessions(login, password,sessionCount))
        super().__init__()
        app.geometry("400x400")  
        app.title("Test")
        button = tk.Button(master=app,text="Start",command=start)
        button.place(relx=0.45, rely=0.8)
async def sesionMaker(login, password):
    browser = await launch(headless=False)
    page = await browser.newPage()
    await page.goto('any_page')
    await page.type('#log_email', login)
    await page.type('#log_password', password)
    await page.click('button[type="submit"]')
async def runSessions(login, password, sessionCount):
    for i in range(1, sessionCount + 1):
        await sesionMaker(login, password)
if __name__ == "__main__":
    app = App()
    app.mainloop()

Any help appreciated.

0

There are 0 best solutions below