nahongyan1997 发表于 2021-2-8 08:59:26

关于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();

nahongyan1997 发表于 2021-6-25 12:37:19

顶一下我自己的帖{:7_146:}
页: [1]
查看完整版本: 关于PyQt5 QtWebEngineWidgets 模块与 javascript 脚本的问题。