diff --git a/examples/uitest/ios_kuaishou_follow_live_test.go b/examples/uitest/ios_kuaishou_follow_live_test.go index cfbac1a0..e16b5be1 100644 --- a/examples/uitest/ios_kuaishou_follow_live_test.go +++ b/examples/uitest/ios_kuaishou_follow_live_test.go @@ -13,7 +13,7 @@ func TestIOSKuaiShouLive(t *testing.T) { Config: hrp.NewConfig("直播_快手_关注天窗_ios"). WithVariables(map[string]interface{}{ "device": "${ENV(UDID)}", - "ups": "大哥,王者", + "ups": "${ENV(LIVEUPLIST)}", }). SetIOS(hrp.WithUDID("$device"), hrp.WithLogOn(true), hrp.WithWDAPort(8100), hrp.WithWDAMjpegPort(9100)), TestSteps: []hrp.IStep{ @@ -36,7 +36,7 @@ func TestIOSKuaiShouLive(t *testing.T) { TapByOCR("关注", hrp.WithIndex(1)).Sleep(10), hrp.NewStep("点击直播标签,进入直播间"). IOS(). - SwipeToTapTexts([]string{}, hrp.WithFunction("${split_by_comma($ups)}"), hrp.WithCustomDirection(0.6, 0.2, 0.2, 0.2), hrp.WithIdentifier("click_live")).Sleep(60). + SwipeToTapTexts("${split_by_comma($ups)}", hrp.WithCustomDirection(0.6, 0.2, 0.2, 0.2), hrp.WithIdentifier("click_live")).Sleep(60). Validate(). AssertOCRExists("说点什么", "进入直播间失败"), hrp.NewStep("下滑进入下一个直播间"). diff --git a/examples/uitest/ios_kuaishou_follow_live_test.json b/examples/uitest/ios_kuaishou_follow_live_test.json index fd016081..3817b167 100644 --- a/examples/uitest/ios_kuaishou_follow_live_test.json +++ b/examples/uitest/ios_kuaishou_follow_live_test.json @@ -3,7 +3,7 @@ "name": "直播_快手_关注天窗_ios", "variables": { "device": "${ENV(UDID)}", - "ups": "大哥,王者" + "ups": "${ENV(LIVEUPLIST)}" }, "ios": [ { @@ -104,15 +104,14 @@ "actions": [ { "method": "swipe_to_tap_texts", - "params": [], + "params": "${split_by_comma($ups)}", "identifier": "click_live", "direction": [ 0.6, 0.2, 0.2, 0.2 - ], - "function": "${split_by_comma($ups)}" + ] }, { "method": "sleep", diff --git a/examples/uitest/ios_kuaishou_follow_live_test.yaml b/examples/uitest/ios_kuaishou_follow_live_test.yaml index c81d75b8..484f0815 100644 --- a/examples/uitest/ios_kuaishou_follow_live_test.yaml +++ b/examples/uitest/ios_kuaishou_follow_live_test.yaml @@ -2,7 +2,7 @@ config: name: 直播_快手_关注天窗_ios variables: device: ${ENV(UDID)} - ups: 大哥,王者 + ups: ${ENV(LIVEUPLIST)} ios: - udid: $device port: 8100 @@ -55,14 +55,13 @@ teststeps: ios: actions: - method: swipe_to_tap_texts - params: [] + params: ${split_by_comma($ups)} identifier: click_live direction: - 0.6 - 0.2 - 0.2 - 0.2 - function: ${split_by_comma($ups)} - method: sleep params: 60 validate: diff --git a/hrp/pkg/uixt/ext.go b/hrp/pkg/uixt/ext.go index 276b6946..e38ffc56 100644 --- a/hrp/pkg/uixt/ext.go +++ b/hrp/pkg/uixt/ext.go @@ -67,7 +67,6 @@ type MobileAction struct { Identifier string `json:"identifier,omitempty" yaml:"identifier,omitempty"` // used to identify the action in log MaxRetryTimes int `json:"max_retry_times,omitempty" yaml:"max_retry_times,omitempty"` // max retry times Direction interface{} `json:"direction,omitempty" yaml:"direction,omitempty"` // used by swipe to tap text or app - Function string `json:"function,omitempty" yaml:"function,omitempty"` // used to replace params Index int `json:"index,omitempty" yaml:"index,omitempty"` // index of the target element, should start from 1 Timeout int `json:"timeout,omitempty" yaml:"timeout,omitempty"` // TODO: wait timeout in seconds for mobile action IgnoreNotFoundError bool `json:"ignore_NotFoundError,omitempty" yaml:"ignore_NotFoundError,omitempty"` // ignore error if target element not found @@ -90,13 +89,6 @@ func WithIndex(index int) ActionOption { } } -// WithFunction replaces params -func WithFunction(function string) ActionOption { - return func(o *MobileAction) { - o.Function = function - } -} - // WithDirection inputs direction (up, down, left, right) func WithDirection(direction string) ActionOption { return func(o *MobileAction) { @@ -437,14 +429,17 @@ func (dExt *DriverExt) DoAction(action MobileAction) error { ACTION_SwipeToTapText, action.Params) case ACTION_SwipeToTapTexts: if texts, ok := action.Params.([]interface{}); ok { + var textList []string + for _, t := range texts { + textList = append(textList, t.(string)) + } + action.Params = textList + } + if texts, ok := action.Params.([]string); ok { var point PointF findText := func(d *DriverExt) error { var err error - var ts []string - for _, t := range texts { - ts = append(ts, t.(string)) - } - points, err := d.GetTextXYs(ts) + points, err := d.GetTextXYs(texts) if err != nil { return err } diff --git a/hrp/step.go b/hrp/step.go index f10fc84f..ac7481f1 100644 --- a/hrp/step.go +++ b/hrp/step.go @@ -31,7 +31,6 @@ var ( WithDescription = uixt.WithDescription WithDirection = uixt.WithDirection WithCustomDirection = uixt.WithCustomDirection - WithFunction = uixt.WithFunction ) var ( diff --git a/hrp/step_mobile_ui.go b/hrp/step_mobile_ui.go index fa924edb..8b16a9ce 100644 --- a/hrp/step_mobile_ui.go +++ b/hrp/step_mobile_ui.go @@ -263,7 +263,7 @@ func (s *StepMobile) SwipeToTapText(text string, options ...uixt.ActionOption) * return &StepMobile{step: s.step} } -func (s *StepMobile) SwipeToTapTexts(texts []string, options ...uixt.ActionOption) *StepMobile { +func (s *StepMobile) SwipeToTapTexts(texts interface{}, options ...uixt.ActionOption) *StepMobile { action := uixt.MobileAction{ Method: uixt.ACTION_SwipeToTapTexts, Params: texts, @@ -618,13 +618,6 @@ func runStepMobileUI(s *SessionRunner, step *TStep) (stepResult *StepResult, err // run actions for _, action := range actions { - if action.Function != "" { - parsedParams, err := parser.ParseString(action.Function, stepVariables) - if err != nil { - return stepResult, err - } - action.Params = parsedParams - } if action.Params, err = parser.Parse(action.Params, stepVariables); err != nil { return stepResult, errors.Wrap(err, "parse action params failed") }