【发布时间】:2013-03-06 18:36:37
【问题描述】:
我正在尝试使用QtWebKit 模块将照片上传到vk.com。我面临的问题是无法正确填写input(type="file") 的值。这是我使用的一些相关代码:
def upload():
print 'uploading...'
photoInput = web.page().mainFrame().documentElement().findFirst('input[id="photos_upload_input"]')
assert photoInput, 'No input found'
photoInput.setAttribute('value', '/Users/elmigranto/Downloads/stuff.png')
print photoInput.evaluateJavaScript('return this.value;').toString()
值得注意的是,由于浏览器的安全政策,文件输入的填充值不可能通过 Javascript 进行。但是,应该可以使用 Qt API,更具体地说,QWebElement::setAttribute() 方法。这就是我所做的……没有任何效果(嗯,photoInput.attribute('value') 返回预期结果,但photoInput.evaluateJavaScript('return this.value;').toString() 返回空字符串,输入的onchange 处理程序也未触发)。
设置其他属性也没问题,例如QWebElement::addClass()就像一个魅力。
任何帮助都会非常棒。
谢谢。
【问题讨论】:
标签: qt qt4 qtwebkit qwebelement