Poco icon indicating copy to clipboard operation
Poco copied to clipboard

操作手机时到达指定代码必定报ConnectionRefusedError异常,单独提出代码执行无异常

Open FENG1000 opened this issue 4 years ago • 1 comments

描述问题bug 总是在执行滑动代码时报错

    while True:
        try:
            # 验证是否存在已滑动到底部,存在则结束
            if poco(text="暂时没有更多了").wait(3):
                print(short_id, '视频爬取设置成功')
                break
            # 往上滑动
            poco.swipe([0.5, 0.9], [0.5, 0.25])
            # time.sleep(random.randrange(3, 7))
            time.sleep(5)
        except:
            print('连接异常')
            time.sleep(5)
[04:34:20][DEBUG]<airtest.core.android.adb> C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\airtest\core\android\static\adb\windows\adb.exe -s 14eeded3 forward --remove tcp:15055
[04:34:20][DEBUG]<airtest.core.android.adb> C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\airtest\core\android\static\adb\windows\adb.exe -s 14eeded3 forward --remove tcp:19831
获取用户视频信息异常
Traceback (most recent call last):
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connection.py", line 159, in _new_conn
    (self._dns_host, self.port), self.timeout, **extra_kw)
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\util\connection.py", line 80, in create_connection
    raise err
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\util\connection.py", line 70, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connectionpool.py", line 600, in urlopen
    chunked=chunked)
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connectionpool.py", line 354, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\http\client.py", line 1229, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\http\client.py", line 1275, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\http\client.py", line 1224, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\http\client.py", line 1016, in _send_output
    self.send(msg)
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\http\client.py", line 956, in send
    self.connect()
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connection.py", line 181, in connect
    conn = self._new_conn()
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connection.py", line 168, in _new_conn
    self, "Failed to establish a new connection: %s" % e)
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x0000028747528BE0>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\adapters.py", line 449, in send
    timeout=timeout
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connectionpool.py", line 638, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\util\retry.py", line 399, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=19831): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0000028747528BE0>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\hrpc\transport\http.py", line 23, in send
    r = requests.post(self.endpoint, data=json.dumps(req), headers={'Content-Type': 'application/json'})
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\api.py", line 116, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=19831): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0000028747528BE0>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\python\food_blogger\control_phone.py", line 70, in top_stroke
    if poco(text="暂时没有更多了").wait(3):
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\poco\proxy.py", line 659, in wait
    while not self.exists():
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\poco\proxy.py", line 72, in wrapped
    return func(proxy, *args, **kwargs)
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\poco\proxy.py", line 774, in exists
    return self.attr('visible')
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\poco\proxy.py", line 39, in wrapped
    return func(self, *args, **kwargs)
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\poco\proxy.py", line 734, in attr
    nodes = self._do_query(multiple=False)
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\poco\proxy.py", line 872, in _do_query
    self._nodes = self.poco.agent.hierarchy.select(self.query, multiple)
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\poco\utils\retry.py", line 20, in wrapped
    raise ex
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\poco\utils\retry.py", line 15, in wrapped
    return func(*args, **kwargs)
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\poco\utils\hrpc\hierarchy.py", line 33, in select
    return self.selector.select(query, multiple)
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\hrpc\object_proxy.py", line 92, in __call__
    return self._client__.evaluate(self.__call_no_evaluate__(remote_obj_cache, *args))
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\hrpc\client.py", line 63, in evaluate
    self.transport.send({'id': reqid, 'uri': obj_proxy._uri__, 'method': obj_proxy._invocation_path__})
  File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\lib\site-packages\hrpc\transport\http.py", line 26, in send
    raise TransportDisconnected(e)
hrpc.exceptions.TransportDisconnected: HTTPConnectionPool(host='127.0.0.1', port=19831): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0000028747528BE0>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))

复现步骤

  1. 初始化设备
      dev = Android(device_no)
      poco = AndroidUiautomationPoco(dev)
    
  2. 在抖音搜索页面执行下列代码,直接调用search_user代码
    def search_user(dev: Android, poco: AndroidUiautomationPoco, short_id):
    """
    搜索用户
    :param poco: 安卓设备
    :param short_id: 抖音号
    :return:
    """
    # 先点击下搜索框
    poco("com.ss.android.ugc.aweme:id/aar").click()
    time.sleep(random.randrange(3, 10))
    poco("com.ss.android.ugc.aweme:id/aar").wait(5).set_text(short_id)
    if poco(text="搜索").wait(3):
        poco(text="搜索").click()
    else:
        poco('com.ss.android.ugc.aweme:id/dkj').click()
    time.sleep(random.randrange(3, 10))
    if poco('com.ss.android.ugc.aweme:id/dm2').wait(2):
        poco('com.ss.android.ugc.aweme:id/dm2').click()
    elif poco('com.ss.android.ugc.aweme:id/dm0').wait(2):
        poco('com.ss.android.ugc.aweme:id/dm0').click()
    else:
        print('未查询到数据')
        time.sleep(random.randrange(3, 10))
        # 后退
        dev.keyevent("4")
        return
    time.sleep(random.randrange(5, 10))
    try:
        # 滑动手机
        top_stroke(poco, short_id)
    except:
        print('获取用户视频信息异常')
        traceback.print_exc()
    time.sleep(random.randrange(5, 10))
    dev.keyevent("4")
    dev.keyevent("4")
    
    

def top_stroke(poco, short_id): """ 上划视频列表 :param poco: 手机 :param short_id: 抖音号 :return: """ while True: try: # 验证是否存在已滑动到底部,存在则结束 if poco(text="暂时没有更多了").wait(3): print(short_id, '视频爬取设置成功') break # 往上滑动 poco.swipe([0.5, 0.9], [0.5, 0.25]) # time.sleep(random.randrange(3, 7)) time.sleep(5) except: print('连接异常') time.sleep(5) ```

python 版本: python3.7

poco 版本: 1.0.76

设备:

  • 型号: [OPPO R9s]
  • 系统: [Android 6.0.1]

其他相关环境信息 在windows上运行异常

FENG1000 avatar Mar 24 '20 08:03 FENG1000

+1

aogg avatar Sep 22 '23 02:09 aogg