AirtestProject / AirtestProject/Poco

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

未关闭
#367 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Python
星标
2k
派生
341
PR 合并指标
30 天内没有已合并 PR

描述

**描述问题bug**
总是在执行滑动代码时报错
```python
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] 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] 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: : 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(': 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(': 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(': Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
```

**复现步骤**
1. 初始化设备
```python
dev = Android(device_no)
poco = AndroidUiautomationPoco(dev)
```
2. 在抖音搜索页面执行下列代码,直接调用search_user代码
```python
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上运行异常

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。