Есть фронт с кнопками написанный на QtWidgets , который управляет эмуляцией браузера через Selenium. Иногда происходит непонятный баг, который закрывает интерфейс, но оставляет открытыми вкладки браузера. Как реализовать автоматический перезапуск только интерфейса, в случае его крэша, сохраняя то что открыто в браузере?
Упрощенный код бэка, дабы была понятна его структура:
from PyQt5 import QtWidgets
from interface import Ui_MainWindow
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
driver = webdriver.Chrome(executable_path='C:\chromedriver.exe')
url = "https://www.google.com/"
driver.get(url)
class ExampleApp(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self): #связываем функции с UI кнопками
super().__init__()
self.setupUi(self)
self.pushButton.clicked.connect(self.NoAdress)
self.pushButton_2.clicked.connect(self.SpecTransp)
self.pushButton_3.clicked.connect(self.NoSvetofor)
def NoAdress(self): #функция для кнопки 1
driver.execute_script('''some js code 1''')
def SpecTransp(self): #функция для кнопки 2
driver.execute_script('''some js code 2''')
def NoSvetofor(self): #функция для кнопки 3
driver.execute_script('''some js code 3''')
if __name__ == '__main__':
app = QtWidgets.QApplication([])
window = ExampleApp()
window.show()
app.exec_()