Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Python:用PyQt和QtWebkit填充html表单,但不显示_Javascript_Python_Forms_Qtwebkit - Fatal编程技术网

Javascript Python:用PyQt和QtWebkit填充html表单,但不显示

Javascript Python:用PyQt和QtWebkit填充html表单,但不显示,javascript,python,forms,qtwebkit,Javascript,Python,Forms,Qtwebkit,我正在尝试使用python、PyQt和QtWebkit填充html表单。我已经找到了很多关于如何执行javascript和做类似事情的帖子,但是我的问题是我从来没有看到过结果。。。输入字段根本不会显示我通过javascript或其他方法设置的内容。。。 请查看下面的代码,我想在其中填充google搜索字段-我知道我可以通过url直接启动google搜索,但这只是一个示例,我需要使用javascript实现这一点:/ import sys from PyQt4.QtGui import *

我正在尝试使用python、PyQt和QtWebkit填充html表单。我已经找到了很多关于如何执行javascript和做类似事情的帖子,但是我的问题是我从来没有看到过结果。。。输入字段根本不会显示我通过javascript或其他方法设置的内容。。。 请查看下面的代码,我想在其中填充google搜索字段-我知道我可以通过url直接启动google搜索,但这只是一个示例,我需要使用javascript实现这一点:/

import sys  
from PyQt4.QtGui import *  
from PyQt4.QtCore import *  
from PyQt4.QtWebKit import *
from PyQt4 import QtCore  

app = QApplication(sys.argv)

web = QWebView()
web.load(QUrl("http://www.google.com"))

#web.page().mainFrame().evaluateJavaScript('var elem = document.getElementByID("lst-ib"); elem.value = "test";')

for e in web.page().mainFrame().findAllElements('input[id=lst-ib]').toList():
        e.setAttribute('value', 'test')

web.show()
app.exec_()
#sys.exit()
你能帮帮我吗

亲切的问候和感谢:)

好的,我找到了一个方法:

from PyQt4.QtGui import *  
from PyQt4.QtCore import *  
from PyQt4.QtWebKit import *
from PyQt4 import QtCore



def executeJs():
    global web
    web.page().mainFrame().evaluateJavaScript("document.getElementsByName('q').item(0).value='test';")
    print "js executed"



app = QApplication(sys.argv)

web = QWebView()
web.load(QUrl("http://www.google.com"))
web.loadFinished.connect(executeJs)


web.show()
app.exec_()
主要的问题是,我猜evaluteJavaScript方法必须在页面加载完成并且文档被删除后调用。getElementById(在纠正拼写错误后)由于某种原因无法工作->替换为getElementsByName