基本上我想进入我的路由器的设置,
设置一个校验按钮,然后调用页面上的函数,
都是程序上的。
我知道所有这样做的javascript,
并且可以通过Google控制台来完成。
我可以通过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
发布于 2011-10-29 23:13:01
您可能应该等待页面完成加载,方法是将javascript计算移到连接到loadFinished()信号的一个槽中。
但是正如Pointy所建议的,您也可以尝试通过QNetworkAccessManager自己发送POST请求,而不是使用小部件。
https://stackoverflow.com/questions/7939090
复制相似问题