Skip to main content

package help control emulator

Project description

emulator

package này 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

pip install emulator-thw

Usage

Example started

LDPlayer

import emulator


ld = emulator.LDPlayer(ldplayer_dir="C:/LDPlayer/LDPlayer4.0")
print(ld.emulators)

có hai cách để lấy ldplayer trong LDPlayer là dùng index ld.emulators[0] hoặc dùng name ld.emulator["LDPlayer"]. 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 ldplayer.

tạo ldplayer mới

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

xóa ldplayer

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

sao chép ldplayer

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

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

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 emulator. 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 emulator đang chạy ngược lại False

em.is_running()

restart

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

em.restart(wait=True)

rename

Đổi tên emulator thành new_name

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

list_packages

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

packages = em.list_packages()
print(packages)

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="example_app.apk")

uninstall_app

Gỡ cài đặt ứng dụng có package name tương ứng. Xem thêm về list_packages

em.uninstall_app(package_name="com.example.app")

run_app

Mở dứng dụng có package name tương ứng. Xem thêm về list_packages

em.run_app(package_name="com.android.chrome")

kill_app

Dừng dứng dụng có package name tương ứng. Xem thêm về list_packages

em.kill_app(package_name="com.android.chrome")

clear_app

Xóa data của ứng dụng có package name tương ứng. Xem thêm về list_packages

em.clear_app(package_name="com.android.chrome")

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)

setting

cài đặt thông số emlator, 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.setting(options)
em.start()

down_cpu

em.down_cpu(rate=50)

backup

Tạo file backup emulator

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ừ emulator về PC thành local

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

push

Đưa file local từ PC lên emulator 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 emulator ngược lại False. Bạn sẽ cần bật ADB debugging để kết nối ADB

em.adb_connected()

tap

Nhấn vào vị trí pos là 1 tuple hoặc dict có dạng (x, y). Có thể truyền vào nhiều pos để tap nhiều lần vào nhiều vị trí khác nhau.

em.tap((200, 200))
em.tap((150, 200), (250, 250))

tap_to_img

Nhấp vào 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 mặc định timeout=0, threshold là độ chính xác khi tìm kiếm, nằm trong khoảng từ 0 tới 1 mặc định threshold=0.8.

em.tap_to_img(img_path="path/to/img", timeout=0, 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 mặc định timeout=0, threshold là độ chính xác khi tìm kiếm, nằm trong khoảng từ 0 tới 1 mặc định threshold=0.8.

em.tap_to_imgs(img_path="path/to/img", timeout=0, 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 mặc định threshold=0.8.

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

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 emulator

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()

dump_xml

Lưu window_dump thành file

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

find_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.find_node(By.TEXT, "node text")

find_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.find_nodes(By.TEXT, "text node")

wait

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

em.wait(second)

hide

Ẩn emulator

em.hide()

show

Hiển thị emulator

em.show()

quit

Tắt emulator

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.6.tar.gz (4.0 MB view details)

Uploaded Source

Built Distribution

emulator_Thw-0.0.6-py3-none-any.whl (4.0 MB view details)

Uploaded Python 3

File details

Details for the file emulator-Thw-0.0.6.tar.gz.

File metadata

  • Download URL: emulator-Thw-0.0.6.tar.gz
  • Upload date:
  • Size: 4.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.25.1 requests-toolbelt/0.9.1 urllib3/1.26.3 tqdm/4.62.2 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.2

File hashes

Hashes for emulator-Thw-0.0.6.tar.gz
Algorithm Hash digest
SHA256 1873a74442067c4f385237ae0c18d83d9b6d73cf2eabb5c8ab25c7ac18dde20a
MD5 3465ad93577c1e8a41bd743ba9c9f89a
BLAKE2b-256 fec977f2581feb91e9c0a454ba9d2d25e12a55b8d602fc0bd741503b01104a37

See more details on using hashes here.

File details

Details for the file emulator_Thw-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: emulator_Thw-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 4.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.25.1 requests-toolbelt/0.9.1 urllib3/1.26.3 tqdm/4.62.2 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.2

File hashes

Hashes for emulator_Thw-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 e5ff794b85ea093476d2799b2bb29b0bb17d2f586127db1da743445ca9af43cc
MD5 6551ae1e5754c5e3128ff632316d1738
BLAKE2b-256 85a6f38ac4ad6f41f6e38e973005b3fe06a547f75fea9e04a2eafd2511f2b277

See more details on using hashes here.

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