selenium не совместим с kivy?

Хотел сделать графический интерфейс для бота, но подумал, что есть возможная несовместимость. Основной скрипт бота в функции spam(), написаный на selenium. После нажатия на одну из кнопок "Spam Admirers Disable" скрипт начинает работу, но сам интерфейс намертво не отвечает пока selemium не закончит свою работу в браузере. Возможно ли эту проблему решить с помощью docker'a и глупо ли совмещать kivy c selenium'ом?

def btn_admirers(instance):
    instance.text = 'Spam Admirers Activate'
    instance.background_color = [1, 0, 0, 1]
    main.spam()


class SpLan(App):
    def build(self):
        button_admirers = BoxLayout(orientation='vertical', padding=[25], spacing=10)
    
        button_admirers.add_widget(Button(text="Spam Admirers Disable",
                                          on_press=btn_admirers))

Кстати цвет и надпись на кнопке тоже меняется только по окончанию работы selenium'a, однако я указал это раньше запуска функции

def btn_admirers(instance):
    instance.text = 'Spam Admirers Activate'
    instance.background_color = [1, 0, 0, 1]
    main.spam()

Пытаюсь запустить функцию spam() в отдельном потоке:

def btn_admirers(instance):
    instance.text = 'Spam Admirers Activate'
    instance.background_color = [1, 0, 0, 1]
    tr = threading.Thread(target=main.spam(), args=[])
    return tr.start()

Ничего не меняется. Скорее всего что-то делаю не так...


Ответы (1 шт):

Автор решения: Landrage

Вопрос решен. В этом случае я возвращал и запускал уже вызванную функцию:

def btn_admirers(instance):
    instance.text = 'Spam Admirers Activate'
    instance.background_color = [1, 0, 0, 1]
    tr = threading.Thread(target=main.spam(), args=[])
    return tr.start()

В этом случае я возвращаю и запускаю переданную функцию:

def btn_admirers(instance):
    instance.text = 'Spam Admirers Activate'
    instance.background_color = [1, 0, 0, 1]
    tr = threading.Thread(target=main.spam, args=[])
    return tr.start()
→ Ссылка