Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AirTestIDE中调用snapshot(filename='endTest', msg="airtest")报错了 #1237

Open
lycfr opened this issue Aug 15, 2024 · 0 comments
Open

AirTestIDE中调用snapshot(filename='endTest', msg="airtest")报错了 #1237

lycfr opened this issue Aug 15, 2024 · 0 comments

Comments

@lycfr
Copy link

lycfr commented Aug 15, 2024

代码:

from airtest.core.api import *

auto_setup(__file__)

snapshot(filename='endTest', msg="airtest")

错误日志:

[16:58:09][DEBUG]<airtest.utils.nbsp> [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:255) Creating virtual display'
[16:58:09][DEBUG]<airtest.utils.nbsp> [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:261) Creating buffer queue'
[16:58:09][DEBUG]<airtest.utils.nbsp> [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:264) Setting buffer options'
[16:58:09][DEBUG]<airtest.utils.nbsp> [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:268) Creating CPU consumer'
[16:58:09][DEBUG]<airtest.utils.nbsp> [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:272) Creating frame waiter'
[16:58:09][DEBUG]<airtest.utils.nbsp> [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:276) Publishing virtual display'
[16:58:09][DEBUG]<airtest.utils.nbsp> [minicap_server]b'INFO: (jni/minicap/JpgEncoder.cpp:64) Allocating 7678980 bytes for JPG encoder'
[16:58:09][DEBUG]<airtest.utils.nbsp> [minicap_server]b'INFO: (jni/minicap/minicap.cpp:489) Server start'
[16:58:09][DEBUG]<airtest.core.android.cap_methods.minicap> (1, 24, 4956, 1080, 2340, 1080, 2340, 0, 2)
[16:58:09][DEBUG]<airtest.utils.nbsp> [minicap_server]b'INFO: (jni/minicap/minicap.cpp:492) New client connection'
[16:58:10][ERROR]<airtest.core.api> Traceback (most recent call last):
  File "C:\Users\lyyd\pyenv-win\pyenv-win\versions\3.8.5\lib\site-packages\PIL\Image.py", line 2543, in save
    format = EXTENSION[ext]
KeyError: ''

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\lyyd\pyenv-win\pyenv-win\versions\3.8.5\lib\site-packages\airtest\cli\runner.py", line 72, in runTest
    exec(compile(code.encode("utf-8"), pyfilepath, 'exec'), self.scope)
  File "C:\Users\lyyd\Desktop\airtest_demo.air\airtest_demo.py", line 13, in <module>
    snapshot(filename='endTest', msg="airtest")
  File "C:\Users\lyyd\pyenv-win\pyenv-win\versions\3.8.5\lib\site-packages\airtest\utils\logwraper.py", line 131, in wrapper
    res = f(*args, **kwargs)
  File "C:\Users\lyyd\pyenv-win\pyenv-win\versions\3.8.5\lib\site-packages\airtest\core\api.py", line 295, in snapshot
    screen = G.DEVICE.snapshot(filename, quality=quality, max_size=max_size)
  File "C:\Users\lyyd\pyenv-win\pyenv-win\versions\3.8.5\lib\site-packages\airtest\core\android\android.py", line 490, in snapshot
    aircv.imwrite(filename, screen, quality, max_size=max_size)
  File "C:\Users\lyyd\pyenv-win\pyenv-win\versions\3.8.5\lib\site-packages\airtest\aircv\aircv.py", line 34, in imwrite
    compress_image(pil_img, filename, quality, max_size=max_size)
  File "C:\Users\lyyd\pyenv-win\pyenv-win\versions\3.8.5\lib\site-packages\airtest\aircv\utils.py", line 107, in compress_image
    pil_img.save(path, quality=quality, optimize=True)
  File "C:\Users\lyyd\pyenv-win\pyenv-win\versions\3.8.5\lib\site-packages\PIL\Image.py", line 2546, in save
    raise ValueError(msg) from e
ValueError: unknown file extension: 

custom tearDown
======================================================================
ERROR: runTest (__main__.CustomCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\lyyd\pyenv-win\pyenv-win\versions\3.8.5\lib\site-packages\PIL\Image.py", line 2543, in save
    format = EXTENSION[ext]
KeyError: ''

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\lyyd\pyenv-win\pyenv-win\versions\3.8.5\lib\site-packages\airtest\cli\runner.py", line 75, in runTest
    six.reraise(*sys.exc_info())
  File "C:\Users\lyyd\pyenv-win\pyenv-win\versions\3.8.5\lib\site-packages\six.py", line 719, in reraise
    raise value
  File "C:\Users\lyyd\pyenv-win\pyenv-win\versions\3.8.5\lib\site-packages\airtest\cli\runner.py", line 72, in runTest
    exec(compile(code.encode("utf-8"), pyfilepath, 'exec'), self.scope)
  File "C:\Users\lyyd\Desktop\airtest_demo.air\airtest_demo.py", line 13, in <module>
    snapshot(filename='endTest', msg="airtest")
  File "C:\Users\lyyd\pyenv-win\pyenv-win\versions\3.8.5\lib\site-packages\airtest\utils\logwraper.py", line 131, in wrapper
    res = f(*args, **kwargs)
  File "C:\Users\lyyd\pyenv-win\pyenv-win\versions\3.8.5\lib\site-packages\airtest\core\api.py", line 295, in snapshot
    screen = G.DEVICE.snapshot(filename, quality=quality, max_size=max_size)
  File "C:\Users\lyyd\pyenv-win\pyenv-win\versions\3.8.5\lib\site-packages\airtest\core\android\android.py", line 490, in snapshot
    aircv.imwrite(filename, screen, quality, max_size=max_size)
  File "C:\Users\lyyd\pyenv-win\pyenv-win\versions\3.8.5\lib\site-packages\airtest\aircv\aircv.py", line 34, in imwrite
    compress_image(pil_img, filename, quality, max_size=max_size)
  File "C:\Users\lyyd\pyenv-win\pyenv-win\versions\3.8.5\lib\site-packages\airtest\aircv\utils.py", line 107, in compress_image
    pil_img.save(path, quality=quality, optimize=True)
  File "C:\Users\lyyd\pyenv-win\pyenv-win\versions\3.8.5\lib\site-packages\PIL\Image.py", line 2546, in save
    raise ValueError(msg) from e
ValueError: unknown file extension: 

----------------------------------------------------------------------
Ran 1 test in 3.759s

FAILED (errors=1)
[16:58:10][DEBUG]<airtest.core.android.adb> C:\Users\lyyd\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s 75575fdc forward --remove tcp:16873
[16:58:10][DEBUG]<airtest.utils.nbsp> [rotation_server]b''
[16:58:10][DEBUG]<airtest.utils.nbsp> [minicap_server]b''
[16:58:10][DEBUG]<airtest.core.android.adb> C:\Users\lyyd\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s 75575fdc forward --remove tcp:16873
[16:58:10][DEBUG]<airtest.core.android.cap_methods.minicap> minicap stream ends
[Finished]

实际情况:

截图可以正常保存到本地

运行日志:

{"tag": "function", "depth": 1, "time": 1723712287.0723295, "data": {"name": "connect_device", "call_args": {"uri": "android://127.0.0.1:5037/75575fdc?touch_method=MAXTOUCH&"}, "start_time": 1723712286.5688064, "ret": "<Android '75575fdc'>", "end_time": 1723712287.0723295}}
{"tag": "function", "depth": 1, "time": 1723712290.0786386, "data": {"name": "snapshot", "call_args": {"filename": "endTest", "msg": "airtest", "quality": null, "max_size": null}, "start_time": 1723712287.0723295, "traceback": "Traceback (most recent call last):\n  File \"C:\\Users\\lyyd\\pyenv-win\\pyenv-win\\versions\\3.8.5\\lib\\site-packages\\PIL\\Image.py\", line 2543, in save\n    format = EXTENSION[ext]\nKeyError: ''\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n  File \"C:\\Users\\lyyd\\pyenv-win\\pyenv-win\\versions\\3.8.5\\lib\\site-packages\\airtest\\utils\\logwraper.py\", line 131, in wrapper\n    res = f(*args, **kwargs)\n  File \"C:\\Users\\lyyd\\pyenv-win\\pyenv-win\\versions\\3.8.5\\lib\\site-packages\\airtest\\core\\api.py\", line 295, in snapshot\n    screen = G.DEVICE.snapshot(filename, quality=quality, max_size=max_size)\n  File \"C:\\Users\\lyyd\\pyenv-win\\pyenv-win\\versions\\3.8.5\\lib\\site-packages\\airtest\\core\\android\\android.py\", line 490, in snapshot\n    aircv.imwrite(filename, screen, quality, max_size=max_size)\n  File \"C:\\Users\\lyyd\\pyenv-win\\pyenv-win\\versions\\3.8.5\\lib\\site-packages\\airtest\\aircv\\aircv.py\", line 34, in imwrite\n    compress_image(pil_img, filename, quality, max_size=max_size)\n  File \"C:\\Users\\lyyd\\pyenv-win\\pyenv-win\\versions\\3.8.5\\lib\\site-packages\\airtest\\aircv\\utils.py\", line 107, in compress_image\n    pil_img.save(path, quality=quality, optimize=True)\n  File \"C:\\Users\\lyyd\\pyenv-win\\pyenv-win\\versions\\3.8.5\\lib\\site-packages\\PIL\\Image.py\", line 2546, in save\n    raise ValueError(msg) from e\nValueError: unknown file extension: \n", "end_time": 1723712290.0786386}}
{"tag": "function", "depth": 2, "time": 1723712290.3102157, "data": {"name": "try_log_screen", "call_args": {"screen": null, "quality": null, "max_size": null}, "start_time": 1723712290.0786386, "ret": {"screen": "1723712290294.jpg", "resolution": [1080, 2340]}, "end_time": 1723712290.3102157}}
{"tag": "info", "depth": 1, "time": 1723712290.3102157, "data": {"name": "Final Error", "traceback": "Traceback (most recent call last):\n  File \"C:\\Users\\lyyd\\pyenv-win\\pyenv-win\\versions\\3.8.5\\lib\\site-packages\\PIL\\Image.py\", line 2543, in save\n    format = EXTENSION[ext]\nKeyError: ''\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n  File \"C:\\Users\\lyyd\\pyenv-win\\pyenv-win\\versions\\3.8.5\\lib\\site-packages\\airtest\\cli\\runner.py\", line 72, in runTest\n    exec(compile(code.encode(\"utf-8\"), pyfilepath, 'exec'), self.scope)\n  File \"C:\\Users\\lyyd\\Desktop\\airtest_demo.air\\airtest_demo.py\", line 13, in <module>\n    snapshot(filename='endTest', msg=\"airtest\")\n  File \"C:\\Users\\lyyd\\pyenv-win\\pyenv-win\\versions\\3.8.5\\lib\\site-packages\\airtest\\utils\\logwraper.py\", line 131, in wrapper\n    res = f(*args, **kwargs)\n  File \"C:\\Users\\lyyd\\pyenv-win\\pyenv-win\\versions\\3.8.5\\lib\\site-packages\\airtest\\core\\api.py\", line 295, in snapshot\n    screen = G.DEVICE.snapshot(filename, quality=quality, max_size=max_size)\n  File \"C:\\Users\\lyyd\\pyenv-win\\pyenv-win\\versions\\3.8.5\\lib\\site-packages\\airtest\\core\\android\\android.py\", line 490, in snapshot\n    aircv.imwrite(filename, screen, quality, max_size=max_size)\n  File \"C:\\Users\\lyyd\\pyenv-win\\pyenv-win\\versions\\3.8.5\\lib\\site-packages\\airtest\\aircv\\aircv.py\", line 34, in imwrite\n    compress_image(pil_img, filename, quality, max_size=max_size)\n  File \"C:\\Users\\lyyd\\pyenv-win\\pyenv-win\\versions\\3.8.5\\lib\\site-packages\\airtest\\aircv\\utils.py\", line 107, in compress_image\n    pil_img.save(path, quality=quality, optimize=True)\n  File \"C:\\Users\\lyyd\\pyenv-win\\pyenv-win\\versions\\3.8.5\\lib\\site-packages\\PIL\\Image.py\", line 2546, in save\n    raise ValueError(msg) from e\nValueError: unknown file extension: \n"}}

如果snapshot(filename='endTest', msg="airtest") 不加filename参数,是可以正常运行的,加了以后就报错了

系统环境

Package               Version
--------------------- -----------
airtest               1.3.4
pillow               10.4.0
pocoui               1.0.94
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant