相关疑难解决方法(0)

PyQt5:QWebEngineView中的mouseClick和源代码

我有一个使用PyQt-5.5.1的工作脚本,我现在想要移植到一个新的PyQt版本(5.7).适应大多数事情很好,但我面临两个主要问题:(1)执行(模拟)鼠标点击,(2)访问(假设:打印)当前显示的网页的html源代码分别是QWebView或QWebEngineView.

例如,我可以使用PyQt-5.5.1中的QWebView执行以下操作:

QTest.mouseClick(self.wvTest, Qt.LeftButton, QPoint(x, y))
Run Code Online (Sandbox Code Playgroud)

frame = self.wvTest.page().mainFrame()
print(frame.toHtml().encode('utf-8'))
Run Code Online (Sandbox Code Playgroud)

我知道有关移植到QWebEngineView但无法将C++表示法转换为可用的Python代码的文档以及此页面.

如何在PyQt-5.7中将其改编为QWebEngineView?下面是PyQt-5.5.1的一个完整工作片段,它对于新的PyQt版本失败了:

  • 对于Button1:根本没有鼠标点击反应.
  • 对于Button2:,AttributeError: 'QWebEnginePage' object has no attribute 'mainFrame'当我删除大型机()时:TypeError: toHtml(self, Callable[..., None]): not enough arguments.

import sys
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication
from PyQt5.QtCore import QRect, Qt, QUrl, QPoint, QEvent
from PyQt5.QtTest import QTest
from PyQt5.Qt import PYQT_VERSION_STR

if PYQT_VERSION_STR=='5.5.1': from PyQt5 import QtWebKitWidgets else: from PyQt5 import QtWebEngineWidgets

class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.button1 = …
Run Code Online (Sandbox Code Playgroud)

python qtwebkit qtestlib pyqt5 qtwebengine

5
推荐指数
1
解决办法
2361
查看次数

标签 统计

pyqt5 ×1

python ×1

qtestlib ×1

qtwebengine ×1

qtwebkit ×1