关于PyQt5 QtWebEngineWidgets 模块与 javascript 脚本的问题。
本帖最后由 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(); 顶一下我自己的帖{:7_146:}
页:
[1]