gpt4 book ai didi

javascript - QWebKit - 运行页面的 javascript 函数?

转载 作者:行者123 更新时间:2023-11-28 10:08:02 26 4
gpt4 key购买 nike

基本上我想进入路由器的设置,
设置一个复选按钮并调用页面上的函数,
全部以编程方式进行。

我知道执行此操作的所有 JavaScript,
并可以通过 Google Chrome 控制台完成此操作。

我可以通过 QWebKit 在语法上执行它,
但实际页面不受影响。

import sys
from PyQt4 import QtCore, QtGui, QtWebKit

class Browser(QtWebKit.QWebView):
def __init__(self, parent = None):
super(Browser, self).__init__()
self.changepage()

def changepage(self):
self.load(QtCore.QUrl("http://192.168.0.1/adv_mac_filter.php"))
x1 = self.page().mainFrame()
x1.evaluateJavaScript("entry_enable_1.checked = true;")
x1.evaluateJavaScript("check();")


app = QtGui.QApplication(sys.argv)
x = Browser()
x.show()
sys.exit(app.exec_())

(是的,此代码要求我已经登录到我的路由器设置)
我知道 JavaScript 正在运行,因为我可以使用警报对其进行测试。

但是,路由器的 html“checked()”函数或复选框不会运行/更改。
就好像我实际上并未与该页面交互,而是与该页面交互。

我在这里犯了一个巨大的菜鸟错误吗?

<小时/>

规范:
python 2.7
PyQt4
QWebKit
Windows 7

最佳答案

您可能应该等待页面完成加载,方法是将 JavaScript 计算移至连接到 loadFinished() 信号的槽。

但正如 Pointy 所建议的,您也可以尝试通过 QNetworkAccessManager 自己发送 POST 请求,而不是使用小部件。

关于javascript - QWebKit - 运行页面的 javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7939090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com