AttributeError: у объекта "Browser" нет атрибута "manager", когда тестовый спиннер
Я пытаюсь использовать spynner для автоматического щелчка по кнопке в исходном коде HTML в качестве небольшого теста. Но я получаю эту ошибку. Traceback (последний вызов был последним): файл "build\bdist.win32\egg\spynner\browser.py", строка 287, в _on_reply AttributeError: объект обозревателя не имеет атрибута 'manager'
Ниже приведен мой код, который следует руководству здесь: 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, спасибо за помощь!
1 ответ
До 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