Подождите задержку, прежде чем захватить изображение сайта с PyQt
Я работаю с PyQt (как начинающий Python). Мне нужно иметь возможность делать скриншоты сайта в безголовой системе. Я использовал PhantomJS ранее для другого проекта, но они отказались от поддержки Flash в 1.5, и я нене хочу полагаться на устаревшую версию 1.4 для моего нового проекта.
Так что я'Я использую PyQt, чтобы делать свои вещи самостоятельно. Я'Я могу сделать снимок экрана сайта с заданным URL, нет проблем.
Но я продолжаю иметь "голубые кости » Значок флэш-плагина на флэш-заполнителе (да, JavaScript и плагины активированы) I '
self.settings.setAttribute(QtWebKit.QWebSettings.PluginsEnabled,True)
self.settings.setAttribute(QtWebKit.QWebSettings.JavascriptEnabled,True)
Я делаю некоторые тесты на видео странице YouTube, вот пример моих проблем:
Вторая часть, которая может быть связана с первой: как я могу сказать PyQt подождать несколько секунд, прежде чем сделать снимок экрана? Как вы можете видеть на примере, изображения справа по-прежнему выгружаются, потому что они загружаются с использованием javascript и атрибута данных, и в моем скрипте я делаю скриншот наloadFinished сигнал (эквивалент javascript onLoad ()).
Мое первое предположение было просто
time.sleep(2)
Перед вызовом моего метода захвата, но этоне работает. Я'Я предполагаю, что загрузка Webkit также спит в течение этого времени ожидания, предотвращая что-либо для загрузки на странице.
Я пытался создать собственный сигнал, но потом все равноне знаю, как вызвать его без сна.
Мое последнее предположение, что мне нужно продвинуть свою заявку. Я прав?
Если у вас есть подсказка / скрипт, который поможет мне отобразить флэш-контент и / или добавить сигнал типа setTimeout, я был бы очень благодарен!
Заранее спасибо за вашу помощь.
РЕДАКТИРОВАТЬ: Просто быстрое редактирование, чтобы добавить мое решение:
timeoutTimer = QTimer()
timeoutTimer.setInterval(3000) # wait for 3secs
timeoutTimer.setSingleShot(True)
timeoutTimer.timeout.connect(theMethodToCallOnTimeout)
Что касается флеш-памяти: похоже, флеш-плеер не работает на OSX (может быть, это связано с проблемой 32/64 бит).