问题遇到的现象和发生背景
用PyQt5编写一个自动化点击加载网页的脚本,将网页通过QWebEngineView加载到mainwindow下,同时在mainwindow上布局一些操作按钮来进行相应的任务操作,通过pyautogui模拟鼠标键盘的形式
问题相关代码,请勿粘贴截图
import pyautogui,sys
from PyQt5.QtCore import QUrl, Qt
from PyQt5.QtWidgets import QMainWindow, QApplication, QPushButton
from PyQt5.QtWebEngineWidgets import QWebEngineView
class MainWindow(QMainWindow):
def __init__(self):
super(QMainWindow, self).__init__()
self.initUI()
def initUI(self):
# 主窗口设置
self.setWindowTitle('自动化')
self.setGeometry(0, 0, 550, 700)
# 网页内嵌设置
self.crazyChiefMain = QWebEngineView(self)
self.crazyChiefMain.setGeometry(0, 0, 438, 700)
self.crazyChiefMain.load(QUrl(r"https://www.baidu.com"))
# 提交开始按钮
self.bt_start = QPushButton('开始点击', self)
self.bt_start.setGeometry(450,50,90, 30)
self.bt_start.clicked.connect(self.go)
def go(self):
pyautogui.click(x=133, y=347, duration=0.5)
pyautogui.click(x=133, y=387, duration=0.5)
pyautogui.click(x=133, y=417, duration=0.5)
if __name__ == '__main__':
app = QApplication(sys.argv)
win = MainWindow()
win.show()
sys.exit(app.exec_())
运行结果及报错内容
运行时发现当鼠标模拟任务开始,所加载的网页是处于静止无响应状态的,无法对其进行操作,待模拟任务结束,又恢复正常页面
我的解答思路和尝试过的方法
尝试过用多线程、多进程好像也不能对加载的页面进行操作,但是如果是两个独立的py脚本,分开运行是没有问题的
我想要达到的结果
用PyQt5通过UI设计,增加QWebEngineView加载网页,在同一mainwindow下布局一些操作按钮展示出来,用pyautogui模拟鼠标对所加载的页面进行相应的自动化操作