AirtestProject / AirtestProject/Poco

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

Đang mở
#367 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Python
Star
2k
Fork
341
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

**描述问题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上运行异常

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.