diff --git a/hrp/step.go b/hrp/step.go index 0097c6bb..7f63767a 100644 --- a/hrp/step.go +++ b/hrp/step.go @@ -23,6 +23,7 @@ const ( cameraStop MobileMethod = "camera_stop" recordStart MobileMethod = "record_start" recordStop MobileMethod = "record_stop" + uiHome MobileMethod = "home" uiClick MobileMethod = "click" uiDoubleClick MobileMethod = "double_click" uiLongClick MobileMethod = "long_click" diff --git a/hrp/step_ios_ui.go b/hrp/step_ios_ui.go index cf162b41..2607a038 100644 --- a/hrp/step_ios_ui.go +++ b/hrp/step_ios_ui.go @@ -33,6 +33,14 @@ func (s *StepIOS) InstallApp(path string) *StepIOS { return s } +func (s *StepIOS) Home() *StepIOS { + s.step.IOS.Actions = append(s.step.IOS.Actions, MobileAction{ + Method: uiHome, + Params: nil, + }) + return &StepIOS{step: s.step} +} + func (s *StepIOS) Click(params interface{}) *StepIOS { s.step.IOS.Actions = append(s.step.IOS.Actions, MobileAction{ Method: uiClick, @@ -345,6 +353,8 @@ func (w *wdaClient) doAction(action MobileAction) error { case appStart: // TODO return errActionNotImplemented + case uiHome: + return w.Driver.Homescreen() case uiClick: // click on coordinate if location, ok := action.Params.([]int); ok { diff --git a/hrp/step_ui_test.go b/hrp/step_ui_test.go index 2dc01076..02739b51 100644 --- a/hrp/step_ui_test.go +++ b/hrp/step_ui_test.go @@ -32,7 +32,7 @@ func TestIOSSettingsAction(t *testing.T) { Config: NewConfig("ios ui action on Settings"), TestSteps: []IStep{ NewStep("launch Settings"). - IOS().Click("//*[@label='设置']"). + IOS().Home().Click("//*[@label='设置']"). Validate(). AssertNameExists("飞行模式", "「飞行模式」不存在"). AssertNameNotExists("飞行模式2", "「飞行模式2」不存在"), @@ -52,7 +52,7 @@ func TestIOSDouyinAction(t *testing.T) { Config: NewConfig("ios ui action on 抖音"), TestSteps: []IStep{ NewStep("launch douyin"). - IOS().Click("//*[@label='抖音']"). + IOS().Home().Click("//*[@label='抖音']"). Validate(). AssertNameExists("首页", "首页 tab 不存在"). AssertNameExists("消息", "消息 tab 不存在"),