Skip to main content

package help control emulator

Project description

emulator

this package hỗ trợ điều khiển các phần mềm giả lập (Hiện tại chỉ hỗ trợ phần mềm LDPlayer)

Installation

Sử dụng Git

pip install emulator

Usage

Example started

LDPlayer

import emulator

ldplayer_directory = "C:/LDPlayer/LDPlayer4.0"
ld = emulator.LDPlayer(ldplayer_directory)

có hai cách để lấy player trong LDPlayer là dùng index ld.emulators[0].start() hoặc dùng name ld.emulator["LDPlayer"].start(). Tôi khuyên bạn nên sử dụng index, vì name có thể trùng lặp dẫn tới điều khiển sai player.

tạo player mới

em = ld.new("New-LDPlayer")
em.start()

xóa player

em_remove = ld.emulators[0]
ld.remove(em_remove)

sao chép player

em_copy = ld.emulators[0]
ld.copy(em_copy)

sắp xếp các cửa sổ player

for em in ld.emulators:
    em.start(wait=False)
ld.sort_window()

tạo các hành động

em = ld.emulator[0]
em.start()
em.tap((100, 100)) # code từng dòng
em.wait(3).swipe((200, 100), (10, 100)).wait(3).quit() # code 1 chuỗi hành động

Bỏ qua quit() bằng cách sử dụng with

with ld.emulators[0].start() as em:
    em.tap((100, 100))

List methods

Danh sách các phương thức có thể sử dụng

start

Khởi chạy player. Nếu tham số wait=True sẽ gọi phương thức wait_to_stared().

em.start(wait=True)

wait_to_started

Chờ cho quá trình khởi chạy hoàn tất. Thực chất là chờ kết nối ADB

em.wait_to_started()

is_running

Trả về True nếu player đang chạy ngược lại False

em.is_running()

restart

Khởi chạy lại player, tham số wait tương tự start()

em.restart(wait=True)

rename

Đổi tên player thành new_name

em.rename(new_name="New-Name-LDPlayer")

install_app

Cài đặt ứng dụng, source có thể là đường dẫn tới file .apk hoặc package name

em.install_app(source)

uninstall_app

Gỡ cài đặt ứng dụng có package name tương ứng

em.uninstall_app(package_name)

run_app

Mở dứng dụng có package name tương ứng

em.run_app(package_name)

kill_app

Dừng dứng dụng có package name tương ứng

em.kill_app(package_name)

list_packages

trả về danh sách các package đã cài đặt trên thiết bị

packages = em.list_packages()
print(packages)

set_locate

Cài đặt locate

em.set_locate(locate="locate")

update_properties

Cập nhật thông tin thiết bị, tham số prop là 1 dict với key là tên property và value là giá trị tương ứng

em.update_properties(prop)

get_properties

Trả về 1 dict với key là tên property và value là giá trị property

prop = em.get_properties()
print(prop)

property_setting

cài đặt thông số player, tham số là 1 EmulatorOptions

import emulator
from emulator.option import EmulatorOptions


ld = emulator.LDPlayer("path/to/ldplayer/")
options = EmulatorOptions()
options.set_resolution(width=128, height=240, dpi=120)
em = ld.emulators[0]
em.property_setting(options)
em.start()

down_cpu

em.down_cpu(rate=50)

backup

Tạo file backup player

em.backup(file_path="C:/backup.ldbk")

restore

em.restore(file_path="C:/backup.ldbk")

action

actions = {"action": "value"}
em.action(actions=actions)

scan

em.scan(file_path="C:/scan.png")

pull

Đưa file remote từ player về PC thành local

em.pull(remote="sdcard/remote.txt", local="C:/local.txt")

push

Đưa file local từ PC lên player thành remote

em.push(local="C:/local.txt", remote="sdcard/remote.txt")

capture

Chụp ảnh màn hình và lưu thành as_file

em.capture(as_file="path/to/save_as.png")

adb_connected

Trả về True nếu ADB đã kết nối với player ngược lại False

em.adb_connected()

tap

Nhấn vào vị trí pos

em.tap(pos=(200, 200))

swipe

Vuốt từ vị trí _from tới vị trí to trong khoảng thời gian duration millisecond.

em.swipe(_from=(100, 200), to=(500, 200), duration=100)

send_text

Gửi đoạn văn bản text.

em.send_text(text)

send_event

Gửi event tới player

import emulator
from emulator import keys


ld = emulator.LDPlayer("path/to/ldplayer dir")
em = ld.emulators[0].start()
em.wait(5).send_event(keys.KEYCODE_CALL)

home

Nhấn vào nút home

em.home()

back

Nhấn vào nút back

em.back()

app_switcher

Nhấn vào nút app switcher

em.app_switcher()

tap_to_img

Nhấp vào hình ảnh khới với hình ảnh được cho. timeout là thời gian chờ hình xuất hiện nếu nhỏ hơn 0 sẽ chờ vô hạn , threshold là độ chính xác khi tìm kiếm, nằm trong khoảng từ 0 tới 1

em.tap_to_img(img_path="path/to/img", timeout=-1, threshold=0.8)

tap_to_imgs

Nhấn vào tất cả hình ảnh khớp với hình ảnh được cho. timeout là thời gian chờ hình xuất hiện nếu nhỏ hơn 0 sẽ chờ vô hạn, threshold là độ chính xác khi tìm kiếm, nằm trong khoảng từ 0 tới 1.

em.tap_to_imgs(img_path="path/to/img", timeout=-1, threshold=0.8)

wait_img_existed

Chờ cho tới khi hình ảnh xuất hiện trên màn hình, chờ tối đa timeout giây, nếu timeout=0 sẽ chờ vô hạn cho tới khi có hình ảnh. threshold là độ chính xác khi tìm kiếm nằm trong khoảng 0 tới 1.

em.wait_img_existed(img_path="path/to/img", timeout=0, threshold=0.8)

dump_xml

Lưu window_dump thành file

em.dump_xml(as_file="path/local.xml")

get_node

Trả về Node đầu tiên trong window_dump có giá trị khớp với giá trị đã cho, nếu tìm được trả về None

import emulator
from emulator.node import By


ld = emulator.LDPlayer("path/to/ldplayer")
em = ld.emulator[0].start().wait(10)
em.get_node(By.TEXT, "node text")

get_nodes

Trả về một list là tất cả các node trong window_dump có giá trị khới với gía trị đã cho

import emulator
from emulator.node import By


ld = emulator.LDPlayer("path/to/ldplayer")
em = ld.emulators[0].start().wait(10)
nodes = em.get_nodes(By.TEXT, "text node")

wait

Dừng chương trình trong second giây

em.wait(second)

hide

Ẩn player

em.hide()

show

Hiển thị player

em.show()

quit

Tắt player

em.quit()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

emulator-Thw-0.0.1.tar.gz (4.0 MB view hashes)

Uploaded Source

Built Distribution

emulator_Thw-0.0.1-py3-none-any.whl (4.0 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page