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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for emulator_Thw-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4dd6c778306216e782fe9604ee3d4804399cdb4dbb7ec968f2f7d1fb667c0107 |
|
MD5 | 1f9668e9669e2f9109da01f0d4659120 |
|
BLAKE2b-256 | 2487d157e50cf997c36874f59e6b38b3b850328a70274938088f5d82964179d9 |