基本上我想進入我的路由器的設置,
設置一個檢查按鈕,並在頁面上調用一個函數,所有編程方式的
。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