鱼C论坛

 找回密码
 立即注册
查看: 1558|回复: 1

关于PyQt5 QtWebEngineWidgets 模块与 javascript 脚本的问题。

[复制链接]
发表于 2021-2-8 08:59:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 nahongyan1997 于 2021-2-8 10:02 编辑

我想用 PyQt5 的 QtWebEngineWidgets 写一个浏览器用于自动化控制以实现一些功能,
跟据我现在已知的知识,QtWebEngineWidgets模块可以通过使用 js 脚本的方式自动控制浏览器,
那么我现在想在脚本执行完成后自动关闭浏览器窗口,而现在网上能查到的方法只能实现关闭窗口功能,
无法保证脚本是否执行完成,所以我想求助大家有没有什么办法可以在脚本执行完成后再关闭浏览器窗口?

上代码
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtWebEngineWidgets import *
import sys

class Web_Browser(QMainWindow):
    def __init__(self,):
        super().__init__()
        self.resize(900,600)
        self.setWindowTitle('Cloud_Browser')
        self.profile = QWebEngineProfile.defaultProfile()
        self.script = QWebEngineScript()
        self.show()
        self.start('https://www.baidu.com','baidu.js')


    def start(self,url,js):
        self.browser = Web_View(self,page_number)
        self.browser.load(QUrl(url))
        self.setCentralWidget(self.browser)
        self.prepare_script(js)
    
    def close_browser(self):
        QCoreApplication.instance().quit()
        qApp.quit()
        sys.exit()
    
    def prepare_script(self,path):
        self.profile.scripts().remove(self.script)
        with open(path, 'r') as f:
          self.script.setSourceCode(f.read())
        self.profile.scripts().insert(self.script)    

if __name__ == '__main__':
    app = QApplication([])
    url = 'baidu.com'
    browser = Web_Browser()
    sys.exit(app.exec_())

这是 js 脚本代码:
document.getElementById('kw').value='浩克';
document.getElementById('su').click();
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-25 12:37:19 | 显示全部楼层
顶一下我自己的帖
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 06:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表