alibaba / alibaba/tidevice

airtest脚本中连接ios设备时,提示Failed to establish a new connection: [Errno 11001] getaddrinfo failed',))无法连接ios设备

Open
#237 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
2.6k
Forks
469
PR merge metrics
No merged PRs in 30d

Description

代码如下:
# -*- encoding=utf8 -*-

from airtest.core.api import *
from poco.drivers.ios import iosPoco
#连接iOS设备
auto_setup(__file__)
connect_device("iOS:///http+usbmux://xxx")
poco = iosPoco()

日志如下:
Traceback (most recent call last):
File "C:\Users\zyq\Anaconda3\Lib\site-packages\requests\adapters.py", line 440, in send
timeout=timeout
File "C:\Users\zyq\Anaconda3\Lib\site-packages\urllib3\connectionpool.py", line 639, in urlopen
_stacktrace=sys.exc_info()[2])
File "C:\Users\zyq\Anaconda3\Lib\site-packages\urllib3\util\retry.py", line 388, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='http+usbmux', port=80): Max retries exceeded with url: /XXX/status (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 11001] getaddrinfo failed',))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\zyq\Anaconda3\Lib\site-packages\airtest\cli\runner.py", line 28, in setUpClass
setup_by_args(args)
File "C:\Users\zyq\Anaconda3\Lib\site-packages\airtest\cli\runner.py", line 130, in setup_by_args
auto_setup(dirpath, devices, args.log, project_root, args.compress)
File "C:\Users\zyq\Anaconda3\Lib\site-packages\airtest\core\api.py", line 113, in auto_setup
connect_device(dev)
File "C:\Users\zyq\Anaconda3\Lib\site-packages\airtest\core\api.py", line 63, in connect_device
dev = init_device(platform, uuid, **params)
File "C:\Users\zyq\Anaconda3\Lib\site-packages\airtest\core\api.py", line 33, in init_device
dev = cls(uuid, **kwargs)
File "C:\Users\zyq\Anaconda3\Lib\site-packages\airtest\core\ios\ios.py", line 86, in __init__
self.rotation_watcher = RotationWatcher(self)
File "C:\Users\zyq\Anaconda3\Lib\site-packages\airtest\core\ios\rotation.py", line 22, in __init__
self.session = iosHandle.session
File "C:\Users\zyq\Anaconda3\Lib\site-packages\airtest\core\ios\ios.py", line 101, in session
self.defaultSession = self.driver.session()
File "C:\Users\zyq\Anaconda3\Lib\site-packages\wda\__init__.py", line 252, in session
sid = self.status()['sessionId']
File "C:\Users\zyq\Anaconda3\Lib\site-packages\wda\__init__.py", line 191, in status
res = self.http.get('status')
File "C:\Users\zyq\Anaconda3\Lib\site-packages\wda\__init__.py", line 101, in fetch
return self._fetch_no_alert(method, url, data)
File "C:\Users\zyq\Anaconda3\Lib\site-packages\wda\__init__.py", line 107, in _fetch_no_alert
return httpdo(target_url, method, data)
File "C:\Users\zyq\Anaconda3\Lib\site-packages\wda\__init__.py", line 75, in httpdo
response = requests.request(method, url, data=data, timeout=HTTP_TIMEOUT)
File "C:\Users\zyq\Anaconda3\Lib\site-packages\requests\api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Users\zyq\Anaconda3\Lib\site-packages\requests\sessions.py", line 508, in request
resp = self.send(prep, **send_kwargs)
File "C:\Users\zyq\Anaconda3\Lib\site-packages\requests\sessions.py", line 618, in send
r = adapter.send(request, **kwargs)
File "C:\Users\zyq\Anaconda3\Lib\site-packages\requests\adapters.py", line 508, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='http+usbmux', port=80): Max retries exceeded with url: /XXX/status (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 11001] getaddrinfo failed',))

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at the connect_device and auto_setup entry points, then trace the iOS initialization through ios.py, rotation.py, and the wda session calls shown in the traceback. Reproduce the http+usbmux connection attempt and determine why the status request cannot reach the device; done means a supported iOS connection succeeds without the getaddrinfo error.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios, python
Domain
mobile-dev
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.