Poco
Poco copied to clipboard
操作手机时到达指定代码必定报ConnectionRefusedError异常,单独提出代码执行无异常
描述问题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] 由于目标计算机积极拒绝,无法连接。'))
复现步骤
- 初始化设备
dev = Android(device_no) poco = AndroidUiautomationPoco(dev)
- 在抖音搜索页面执行下列代码,直接调用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上运行异常
+1