#python #performance #appium #screenshot
#python #Производительность #appium #скриншот
Вопрос:
Я хочу сохранить изображение в формате png на жестком диске. В первый раз это занимает 1,6 секунды, а во второй раз и далее это занимает более 3 секунд, почему это?
import appium.webdriver
from appium import webdriver
import time
import PIL
from PIL import Image
import datetime
"""
Desired Capabilities
"""
desired_cap = {
"deviceName": "ZY2244B53V",
"platformName": "Android",
"appPackage": "==",
"appActivity": "com.tictok.tictokgame.activities.HomeActivity",
"automationName": "UiAutomator1"
}
webdriver = webdriver.Remote("http://localhost:4723/wd/hub",desired_cap)
n=0
while n<2:
a=datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
print("time of start saving image" str(a))
webdriver.save_screenshot("D:/Python/winzo_memory/a.png")
b=datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
print("time of end saving image" str(b))
a=datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
print("time of start opening image" str(a))
im = Image.open("a.png")
b=datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
print("time of end opening image" str(b))
n=n 1
вывод:
time of start saving image2020-08-23 06:56:41.252
time of end saving image2020-08-23 06:56:42.837
time of start saving image2020-08-23 06:56:42.904
time of end saving image2020-08-23 06:56:45.952
Я пытаюсь сделать снимок экрана в драйвере appium. Есть ли более быстрый способ сделать снимок экрана и позволить python прочитать пиксели? Заранее спасибо.
Моя операционная система — Windows 7. изображение имеет размер 1080X1920. и размер изображения составляет около 1,5 мб. не уверен насчет HDD или SSD.
Комментарии:
1. С этим кодом вы не знаете, работает ли он
webdriver.save_screenshot()
медленнее, чем раньше, илиImage.open()
медленнее. Если вы поместите временную метку между этими двумя, вы, вероятно, сможете исключить один из них.2. Я предполагаю, что это перезаписывает существующий исходный файл (который также открыт), если вы измените имя, на которое сохраняете, это все равно произойдет?
3. с изменяемыми именами это также занимает 3 секунды
4. Насколько велик размер изображения (в месяцах)? Каково его разрешение (ширина и высота)? У вас есть жесткий диск или SSD? Какая у вас операционная система? (Пожалуйста, укажите эту информацию непосредственно в вопросе).
5. Хорошо, теперь, когда у нас есть несколько новых наблюдений, вам следует соответствующим образом обновить вопрос. Это не чтение изображения, это сохранение изображения, которое занимает больше времени. Кроме того, я думаю, вам не нужны 6 из 9 импортированных файлов. Всегда старайтесь максимально сократить код. Это упрощает для нас настройку среды и воспроизведение проблемы. Вероятно, вы также можете удалить строки
a=... b=... c=... if a== b== c==
, не затрагивая проблему. Просто сделайте копию своего проекта и упростите его для Stack Overflow. Это хорошая практика.