Skip to content

Commit e007f5e

Browse files
committed
docs: Update README.md
1 parent 363fab6 commit e007f5e

File tree

6 files changed

+20
-13
lines changed

6 files changed

+20
-13
lines changed

README.md

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11
# hmdriver2
2+
[![github actions](https://github.com/codematrixer/hmdriver2/actions/workflows/release.yml/badge.svg)](https://github.com/codematrixer/hmdriver2/actions)
3+
[![pypi version](https://img.shields.io/pypi/v/hmdriver2.svg)](https://pypi.python.org/pypi/hmdriver2)
4+
![python](https://img.shields.io/pypi/pyversions/hmdriver2.svg)
5+
[![downloads](https://pepy.tech/badge/hmdriver2)](https://pepy.tech/project/hmdriver2)
6+
7+
28

39
>写这个项目前github上已有个[hmdirver](https://github.com/mrx1203/hmdriver),但它是侵入式(需要提前在手机端安装一个testRunner app)。另外鸿蒙官方提供的`hypium`自动化框架,使用较复杂,依赖繁杂。于是决定重写一套框架,解决上述两个框架的弊端。
410
@@ -32,6 +38,7 @@
3238
- 支持Toast获取
3339
- [TODO] 全场景弹窗处理
3440
- [TODO] 操作标记
41+
- [TODO] Inspector
3542

3643

3744

@@ -66,13 +73,12 @@ pip3 install -U "hmdriver[opencv-python]"
6673
```python3
6774
from hmdriver2.driver import Driver
6875

69-
d = Driver("FMR0223C13000649")
76+
d = Driver("FMR0223C13000649") # 参数替换成你的serial
7077

7178
print(d.device_info)
7279

7380
# ouput:
74-
DeviceInfo(productName='HUAWEI Mate 60 Pro', model='ALN-AL00', sdkVersion='12', sysVersion='ALN-AL00 5.0.0.60(SP12DEVC00E61R4P9log)', cpuAbi='arm64-v8a', wlanIp='172.31.125.111', displaySize=(1260, 2720), displayRotation=<DisplayRotation.ROTATION_0: 0>)
75-
81+
# DeviceInfo(productName='HUAWEI Mate 60 Pro', model='ALN-AL00', sdkVersion='12', sysVersion='ALN-AL00 5.0.0.60(SP12DEVC00E61R4P9log)', cpuAbi='arm64-v8a', wlanIp='172.31.125.111', displaySize=(1260, 2720), displayRotation=<DisplayRotation.ROTATION_0: 0>)
7682
```
7783

7884

@@ -88,6 +94,7 @@ from hmdriver2.driver import Driver
8894
d = Driver("FMR0223C13000649")
8995
```
9096

97+
参数`serial` 通过`hdc list targets` 命令获取
9198

9299
初始化driver后,下面所有的操作都是调用dirver实现
93100

@@ -108,7 +115,7 @@ d.uninstall_app("com.kuaishou.hmapp")
108115
```python3
109116
d.start_app("com.kuaishou.hmapp", "EntryAbility")
110117
```
111-
传入的两个参数分别是`package_name`, `page_name`,可以通过hdc命令获取`hdc shell aa dump -l`
118+
传入的两个参数分别是`package_name`, `page_name`可以通过hdc命令获取`hdc shell aa dump -l`
112119

113120

114121
### 停止App
@@ -370,23 +377,22 @@ g.action()
370377
```
371378
也支持链式调用(推荐)
372379
```python3
373-
d.gesture.start(x, y, interval=.5).move(x, y).pause(interval=1).move(x, y).action()
380+
d.gesture.start(x1, y1, interval=.5).move(x2, y2).pause(interval=1).move(x3, y3).action()
374381
```
375382

376-
参数`x`, `y`表示坐标位置,可以为绝对坐标值,也可以为相当坐标(屏幕百分比),`interval`表示手势持续的时间,单位秒
383+
参数`x`, `y`表示坐标位置,可以为绝对坐标值,也可以为相当坐标(屏幕百分比),`interval`表示手势持续的时间,单位秒
377384

378-
379-
这是一个复杂手势的效果展示 [Watch the gif](/docs/demo_gesture.gif)
380-
381-
382-
Notes:如果只有start手势,则等价于点击
385+
如果只有start手势,则等价于点击:
383386
```python3
384387
d.gesture.start(x, y).action() # click
385388

386389
# 等价于
387390
d.click(x, y)
388391
```
389392

393+
*如下是一个复杂手势的效果展示*
394+
395+
![Watch the gif](./docs/gesture.gif)
390396

391397

392398
## 控件操作
@@ -424,6 +430,7 @@ Notes:当同一界面有多个属性相同的元素时,`index`属性非常
424430
**模糊定位TODO**
425431

426432
**组合定位**
433+
427434
指定多个`by`属性进行元素定位
428435
```python3
429436
# 定位`type`为Button且`text`为tab_recrod的元素
@@ -440,7 +447,7 @@ d(id="drag", isBefore=True)
440447
```
441448

442449
### 控件查找
443-
结合上面讲的元素选择器,就可以进行元素的查找
450+
结合上面讲的控件选择器,就可以进行元素的查找
444451
```python3
445452
d(text="tab_recrod").exists()
446453
d(type="Button", text="tab_recrod").exists()

docs/demo_app.png

-116 KB
Binary file not shown.

docs/demo_gesture.gif

-2.18 MB
Binary file not shown.

docs/gesture.gif

2.64 MB
Loading

hmdriver2/_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ def _init_so_resource(self):
144144

145145
def __get_so_local_path() -> str:
146146
current_path = os.path.realpath(__file__)
147-
return os.path.join(os.path.dirname(current_path), "asset", "agent.so")
147+
return os.path.join(os.path.dirname(current_path), "assets", "agent.so")
148148

149149
def __check_device_so_file_exists() -> bool:
150150
"""Check if the agent.so file exists on the device."""
File renamed without changes.

0 commit comments

Comments
 (0)