基本上我想进入我的路由器的设置,
设置一个检查按钮,并在页面上调用一个函数,所有编程方式的
。QWebKit - 运行页面的JavaScript函数?
我知道所有的javascript来做到这一点,
,可以通过谷歌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()”函数或复选框没有运行/更改。
这就像我实际上没有与页面交互,而是一个副本。
我在这里犯了一个大规模的菜鸟错误吗?
规格:
蟒蛇2.7
PyQt4的
QWebKit
的Windows 7
页面中是否有表单或其他东西需要回发到服务器(即路由器)?任何类型的浏览器总是与本地的网页副本一起工作,所以有些东西需要通过HTTP(表单发布或一些AJAX方法)与服务器通信。大概是 – Pointy
。我怀疑这样的事情,但不知道该怎么做! Chrome控制台让这一切看起来都如此简单! –
完全取决于网页的工作方式。当您直接使用路由器时,是否有按钮需要点击,如“保存”或其他?如果您可以触发从Python中点击该元素,它可能会做正确的事情。 – Pointy