我正在尝试使用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/

10-11 21:16