用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模拟鼠标对所加载的页面进行相应的自动化操作
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。
因为采用了单线程,任务就是出现假死现象,必须采用多线程,而PyQt5.Qt中本身有QThread多线程模块,所以用QThread就可以解决了
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!