QWebKit, как работает js на странице из python - PullRequest
1 голос
/ 09 марта 2020

Как я могу добавить JavaScript на страницу через QWebKit?

import sys
from PyQt5.QtCore import *
from PyQt5.QtWebKitWidgets import *
from PyQt5.QtWidgets import QApplication

js = "alert('test');"

def function():
    app = QApplication(sys.argv)

    web = QWebView()
    web.load(QUrl("url"))

    # run js

    web.show()

    sys.exit(app.exec_())


if __name__ == '__main__':
    function()

Код js - простой пример, я не знаю точно, какой код будет запущен.

1 Ответ

1 голос
/ 09 марта 2020

Необходимо выполнить метод оценки JavaScript () основного кадра страницы, связанной с представлением. Рекомендуется запустить его после загрузки страницы:

import sys
from PyQt5.QtCore import QUrl
from PyQt5.QtWebKitWidgets import QWebView
from PyQt5.QtWidgets import QApplication

js = "alert('test');"


def function():
    app = QApplication(sys.argv)

    web = QWebView()
    web.load(QUrl("https://stackoverflow.com"))
    # web.page().mainFrame().evaluateJavaScript(js)

    def on_load_finished(ok):
        if ok:
            web.page().mainFrame().evaluateJavaScript(js)

    web.loadFinished.connect(on_load_finished)

    web.show()

    sys.exit(app.exec_())


if __name__ == "__main__":
    function()
...