我正在尝试使用spynner自动单击HTML源代码中的某些按钮,作为一个小测试。但我收到此错误。
追溯(最近一次通话):
_on_reply中的文件“ build \ bdist.win32 \ egg \ spynner \ browser.py”,第287行
AttributeError:“浏览器”对象没有属性“管理器”
以下是我的代码,它遵循此处的指南:https://github.com/makinacorpus/spynner/blob/master/examples/webkit_methods.py
import spynner
import libxml2
proxy_ip = "xxx.xxx.xxx.xxx";
browser = spynner.Browser()
# setting proxy ip
browser.set_proxy(proxy_ip :'8080');
browser.show()
try:
browser.load(url='http://xxx.html', load_timeout=10, tries=1)
except spynner.SpynnerTimeout:
print 'Timeout.'
else:
browser.wk_click('a[id="voteProjectBtn_10353150"]', wait_load=True)
browser.close()
我正在使用Python 2.7,谢谢您的帮助!
最佳答案
在browser.close()
之前,您必须销毁循环javascript,某些网站具有定时脚本,因此您需要销毁这些脚本
参见browser.py,更改方法“ _manager_create_request”,
在browser.close()
之前,设置self.closeflag = True
def _manager_create_request(self, operation, request, data):
if self.closeflag:
return None
url = unicode(request.url().toString())
operation_name = self._operation_names[operation].upper()
self._debug(INFO, "Request: %s %s" % (operation_name, url))
for h in request.rawHeaderList():
self._debug(DEBUG, " %s: %s" % (h, request.rawHeader(h)))
if self._url_filter:
if self._url_filter(self._operation_names[operation], url) is False:
self._debug(INFO, "URL filtered: %s" % url)
request.setUrl(QUrl("about:blank"))
else:
self._debug(DEBUG, "URL not filtered: %s" % url)
reply = QNetworkAccessManager.createRequest(self.manager,
operation, request, data)
return reply
关于python - AttributeError:测试spynner时,“浏览器”对象没有属性“管理器”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28253750/