Почему мой QWebEngineView зависает на экране загрузки Instagram и не принимает такие входные данные, как перезагрузка
Когда я запускаю, все работает нормально, за исключением того, что оно останавливается на заставке/экране загрузки Instagram, даже пункт меню, вызываемый правой кнопкой мыши, не работает. Работает для PyQt5, но не для PyQt6. Проблем с подключением к Интернету нет.
from PyQt6.QtWidgets import *
from PyQt6.QtWebEngineWidgets import QWebEngineView
from PyQt6.QtWebEngineCore import QWebEnginePage, QWebEngineProfile
from PyQt6.QtCore import QUrl
class Main(QWebEngineView):
def __init__(self):
super().__init__()
self.profile = QWebEngineProfile("data", self) # Create a off-road profile with parent self
self.profile.setPersistentCookiesPolicy
(QWebEngineProfile.PersistentCookiesPolicy.AllowPersistentCookies) # Force the cookie to be stored in disk
self.profile.setHttpCacheType(QWebEngineProfile.HttpCacheType.DiskHttpCache) # Cache is stored in disk
self.profile.setPersistentStoragePath('data') # Cookie path in data folder in root
self.profile.setCachePath('data') # Cache path in data folder in root
self.page = QWebEnginePage(self.profile) # Create a page with profile from above
self.setPage(self.page) # not set page to QWebEngineView
self.load(QUrl("https://www.instagram.com")) # load the url in view
self.show()
app = QApplication(sys.argv)
main = Main()
app.exec()
Я попробовал открыть Google, думаю, сработала только кнопка входа. В PyQt5 работает все, кроме небольшого количества JS. Я ожидаю, что сайт загрузится и примет входные данные.
1 ответ
Это похоже на ошибку QtWebEngine.(А как насчет того, чтобы сообщить об этом здесь ? ) Вы можете решить проблему, используя такие абсолютные пути.
import os
...
class Main(QWebEngineView):
def __init__(self):
...
self.profile.setPersistentStoragePath(os.path.abspath('data'))
self.profile.setCachePath(os.path.abspath('data'))
...