我会按步骤写下我想做的事情。如果英语不是我的母语,那就更好理解了。
向SharePoint进行身份验证
转到http://cdc-rnd-sps34.dev.local/Lists/SC_Incidents/Open.aspx
执行JavaScript
使用已执行的JavaScript获取HTML
现在我收到了这个错误:
TypeError:' PyQt4.QtCore.pyqtWrapperType'对象不可迭代
我不是开发人员,我是QA人并尝试做一些自动化,所以我不是很擅长编程。在我使用它的其他情况下,身份验证工作正常。所以类Render中的问题,我不明白它是如何完全工作的,我只是复制粘贴它。我只是不知道如何使用经过身份验证的URL地址将其放入getHtml()函数。
代码:
import urllib2
import sys
from ntlm import HTTPNtlmAuthHandler
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtWebKit import *
user = "dev\\ani"
password = "pass"
adress = "http://cdc-rnd-sps34.dev.local/Lists/SC_Incidents/Open.aspx"
class Render(QWebPage):
def __init__(self, url):
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, QWebPage, user, password)
auth_NTLM = HTTPNtlmAuthHandler.HTTPNtlmAuthHandler(passman)
opener = urllib2.build_opener(auth_NTLM)
opener.addheaders = [("X-FORMS_BASED_AUTH_ACCEPTED", "f")]
urllib2.install_opener(opener)
self.app = QApplication(sys.argv)
QWebPage.__init__(self)
self.loadFinished.connect(self._loadFinished)
self.mainFrame().load(QUrl(url))
self.app.exec_()
def _loadFinished(self, result):
self.frame = self.mainFrame()
self.app.quit()
def getHtml(str_url):
r_html = Render(str_url)
html = r_html.frame.toHtml()
return html
html = getHtml(adress)
print html