欢迎访问宙启技术站
智能推送

Python中使用QWebEnginePage()实现表单自动填充

发布时间:2023-12-18 03:40:20

在Python中,可以使用QWebEnginePage()来实现表单自动填充。QWebEnginePage()是Qt的一个类,用于显示和管理Web内容,并提供与Web内容交互的方法和信号。

下面是一个使用QWebEnginePage()实现表单自动填充的例子:

from PyQt5.QtWidgets import QApplication
from PyQt5.QtCore import QUrl
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage

class FormFillerPage(QWebEnginePage):
    def __init__(self):
        super().__init__()

    def javaScriptConsoleMessage(self, level, message, line, sourceID):
        pass

    def acceptNavigationRequest(self, url, _type, isMainFrame):
        return True

    def javaScriptAlert(self, frame, message):
        pass

    def populateForm(self):
        # 在这里进行表单填充逻辑
        self.runJavaScript("document.getElementById('username').value = 'admin';")
        self.runJavaScript("document.getElementById('password').value = 'password';")
    
    def onLoadFinished(self, success):
        if success:
            self.populateForm()

# 创建应用程序实例
app = QApplication([])

# 创建Web视图
view = QWebEngineView()

# 创建QWebEnginePage实例
page = FormFillerPage()

# 将QWebEnginePage设置为Web视图的页面
view.setPage(page)

# 加载网页
view.load(QUrl('https://example.com/login'))

# 显示Web视图
view.show()

# 运行应用程序
app.exec_()

上述代码中,FormFillerPage是继承自QWebEnginePage的自定义页面类。在FormFillerPage中,我们重写了一些方法,以便在加载完成后自动填充表单。在populateForm()方法中,我们使用runJavaScript()方法执行JavaScript代码来填充表单。

在主程序中,我们创建了一个QApplication实例和一个QWebEngineView实例,并将FormFillerPage设置为QWebEngineView的页面。然后,使用load()方法加载指定的网页,并显示出来。

当网页加载完成后,onLoadFinished()方法会被调用,并在其中调用populateForm()方法,实现表单自动填充。