我正在尝试使用PyQt提交表单。我开始通过Spynner使用它,但我解构说,在我的repl中只是原始PyQT调用自己尝试调试问题。
>>> obr.webframe.findAllElements('.qust input').toList()
[<PyQt4.QtWebKit.QWebElement object at 0xa343f7c>, <PyQt4.QtWebKit.QWebElement object at 0xa343fb4>]
>>>
>>> elem = obr.webframe.findAllElements('.qust input').toList()[1]
>>> elem.setFocus()
>>> elem.evaluateJavaScript("this.click()")
当这不起作用时,我从Spynner中调用click事件的方法中提取了这个片段,这也没有用:
>>> jscode =
"var e = document.createEvent('MouseEvents');e.initEvent( 'click', true, true );this.dispatchEvent(e);"
>>>
>>> elem.evaluateJavaScript(jscode)
最后:
>>> obr.webframe.findFirstElement('form')
<PyQt4.QtWebKit.QWebElement object at 0xa34387c>
>>> obr.webframe.findFirstElement('form').evaluateJavaScript('this.submit();')
<PyQt4.QtCore.QVariant object at 0xa343f44>
>>>
在所有情况下,它立即返回。没有表格发布。表格是正常的:
>>> obr.webframe.findFirstElement('form').attribute('action')
PyQt4.QtCore.QString(u'SubmitPage.aspx?g=d7a717c38&ust=72a0fc7b&nm=01f00&se=53')
>>> obr.webframe.findFirstElement('form').attribute('method')
PyQt4.QtCore.QString(u'post')
如果有人有任何想法或建议,我会非常感激。正如你所看到的,我一直只是抓住稻草。不是我首选的调试风格......