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
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1873a74442067c4f385237ae0c18d83d9b6d73cf2eabb5c8ab25c7ac18dde20a |
|
MD5 | 3465ad93577c1e8a41bd743ba9c9f89a |
|
BLAKE2b-256 | fec977f2581feb91e9c0a454ba9d2d25e12a55b8d602fc0bd741503b01104a37 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5ff794b85ea093476d2799b2bb29b0bb17d2f586127db1da743445ca9af43cc |
|
MD5 | 6551ae1e5754c5e3128ff632316d1738 |
|
BLAKE2b-256 | 85a6f38ac4ad6f41f6e38e973005b3fe06a547f75fea9e04a2eafd2511f2b277 |