@skeetlz

Как исправить «RuntimeError: There is no current event loop in thread»?

Вылезает ошибка при запуске драйвера webdriver = driver.chrome():

RuntimeError: There is no current event loop in thread 'Thread-1 (startscript2)'.

После загрузки браузер закрывается с данной ошибкой.

Вот код:

def startscript1(self , thread ):
			th = threading.Thread(target=self.startscript2)
			th.start()
			self.ui.lineEdit_3.setText("Work")


	def startscript2(self):


		
		driver = webdriver.Chrome()
		driver.get("https://csfail.org/ru/bonuses")
		driver.set_window_size(1280, 1080)

		tg_app = Client(name = "account", api_id = cfg.tg_id, api_hash = cfg.tg_api_hash )

		@tg_app.on_message(filters=filters.channel)

		def my_handler(client: Client, message: types.Message):
		
			if message.chat.id != cfg.id_channel:
				False
			elif message.text in INVALID_NAMES:
						message.text == "None"
			else:
			
				print(message.text)
				input_promo = driver.find_element(By.NAME, "code")
				input_promo.clear()
				input_promo.send_keys(message.text)
				input_promo.send_keys(u'\ue007')
				input_promo.clear()
				sound = pyglet.media.load('shpic.mp3', streaming=False)
				sound.play()
				pyglet.app.run()
				ui.lineEdit_2.setText("" + message.text)

		tg_app.run()
  • Вопрос задан
  • 1098 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Очевидно, webdriver использует под капотом asyncio, который требует дополнительных телодвижений при работе с потоками.
В частности, нужно в начале потока сначала вызвать asyncio.new_event_loop(), потом её результат скинуть в asyncio.set_event_loop(). Доки.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы