PyQt5 Threading Selenium Script - PullRequest
       16

PyQt5 Threading Selenium Script

0 голосов
/ 10 февраля 2020

У меня возникают трудности с определением потоков в PyQt5. Я сделал GUI для сценария, который я использую на работе, чтобы поделиться со своим коллегой. Сценарий выполняет автоматизацию браузера селена с некоторыми переменными, которые он получает от GUI. Сценарий находится в другом файле .py и не наследуется ни от одного класса. Я просто создаю его экземпляр в mainapp.py, когда нажимаю кнопку запроса. (Да, и скрипт ничего не возвращает, я добавил возвращаемое значение True для тестирования)

mainapp.py

class OutputCheckerSub(Ui_OutputChecker):

def __init__(self):
    super().__init__()
    ........
    ........

    # Connecting Query button
    self.query_button.clicked.connect(self.run_output_script)

def run_output_script(self):
    self.output_script.run_script()

    ......

Это запускает скрипт с правильными переменными, но выдает GUI приложение.

Мне удалось несколько поработать с потоками (без установки переменных), но через 10 секунд происходит сбой.

multithreading.py

class OutputScriptThread(QThread):
    signal = pyqtSignal(bool)
    def __init__(self):
        super().__init__()

    def run(self):
        output_checker_script = output_checker.OutputCheckerScript()
        state = output_checker_script.run_script()
        self.signal.emit(state)

mainapp.py с Неправильный поток

class OutputCheckerSub(Ui_OutputChecker):

    def __init__(self):
        super().__init__()
        .......
        .......
        # Connecting Query button
        self.query_button.clicked.connect(self.run_output_script)
        self.outputcheck_thread = multithreading.OutputScriptThread()

    def run_output_script(self):
        self.outputcheck_thread.start()

    .....

Еще одна сложная часть - передача переменных из одного класса в другой. в настоящее время мой GUI напрямую изменяет переменные экземпляра сценария. Если я получу работу потоков, где я должен установить переменные? Из темы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...