javascript - Python:使用PyQt和QtWebkit填充html表单不显示

标签 javascript python forms qtwebkit

我正在尝试使用 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_()

主要问题是我猜想在页面加载完成后必须调用 evaoluteJavaScript 方法,并且 document.getElementById (在纠正拼写错误后)由于某种原因不起作用 -> 被替换使用 getElementsByName

关于javascript - Python:使用PyQt和QtWebkit填充html表单不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31061071/

相关文章:

python - Django 表单不显示

javascript - Alpaca 表单提交,保持在同一页面

python - Lark 解析器无法解析字符,即使它们是在规则的正则表达式中定义的

python - 按每个子列表中的一些值对子列表列表进行分组

Python Regex 查找 1000 美元或更多的金额

Jquery 验证表单未在 'return true' 上提交

javascript - 初始 "jumpy"拖动行为

使用 JSON 对象将 PHP 数组转换为 JavaScript - 返回 null

javascript - 如何在react-redux中返回组合的reducer?

javascript - 将 Firebase 可观察到的 Angular 映射到模板