|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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();
复制代码 |
|