change: remove options for AppLaunch/AppTerminate/AppClear

This commit is contained in:
lilong.129
2025-05-12 17:26:57 +08:00
parent 0b1a92d8dd
commit 00a6ca1f61
8 changed files with 19 additions and 62 deletions

View File

@@ -266,15 +266,11 @@ func (ad *ADBDriver) PressKeyCode(keyCode KeyCode, metaState KeyMeta) (err error
return
}
func (ad *ADBDriver) AppLaunch(packageName string, opts ...option.ActionOption) (err error) {
func (ad *ADBDriver) AppLaunch(packageName string) (err error) {
log.Info().Str("packageName", packageName).Msg("ADBDriver.AppLaunch")
// 不指定 Activity 名称启动(启动主 Activity
// adb shell monkey -p <packagename> -c android.intent.category.LAUNCHER 1
actionOptions := option.NewActionOptions(opts...)
preHandler_AppLaunch(ad, actionOptions)
defer postHandler(ad, actionOptions)
sOutput, err := ad.runShellCommand(
"monkey", "-p", packageName, "-c", "android.intent.category.LAUNCHER", "1",
)
@@ -289,15 +285,10 @@ func (ad *ADBDriver) AppLaunch(packageName string, opts ...option.ActionOption)
return nil
}
func (ad *ADBDriver) AppTerminate(packageName string, opts ...option.ActionOption) (successful bool, err error) {
func (ad *ADBDriver) AppTerminate(packageName string) (successful bool, err error) {
log.Info().Str("packageName", packageName).Msg("ADBDriver.AppTerminate")
// 强制停止应用,停止 <packagename> 相关的进程
// adb shell am force-stop <packagename>
actionOptions := option.NewActionOptions(opts...)
preHandler_AppTerminate(ad, actionOptions)
defer postHandler(ad, actionOptions)
_, err = ad.runShellCommand("am", "force-stop", packageName)
if err != nil {
return false, errors.Wrap(err, "force-stop app failed")
@@ -551,7 +542,7 @@ func (ad *ADBDriver) SendKeysByAdbKeyBoard(text string) (err error) {
return
}
func (ad *ADBDriver) AppClear(packageName string, opts ...option.ActionOption) error {
func (ad *ADBDriver) AppClear(packageName string) error {
log.Info().Str("packageName", packageName).Msg("ADBDriver.AppClear")
if _, err := ad.runShellCommand("pm", "clear", packageName); err != nil {
log.Error().Str("packageName", packageName).Err(err).Msg("failed to clear package cache")

View File

@@ -138,11 +138,7 @@ func (wd *BrowserDriver) Drag(fromX, fromY, toX, toY float64, options ...option.
return
}
func (wd *BrowserDriver) AppLaunch(packageName string, opts ...option.ActionOption) (err error) {
actionOptions := option.NewActionOptions(opts...)
preHandler_AppLaunch(wd, actionOptions)
defer postHandler(wd, actionOptions)
func (wd *BrowserDriver) AppLaunch(packageName string) (err error) {
data := map[string]interface{}{
"url": packageName,
}
@@ -465,11 +461,7 @@ func (wd *BrowserDriver) Unlock() (err error) {
// AppTerminate Terminate an application with the given package name.
// Either `true` if the app has been successfully terminated or `false` if it was not running
func (wd *BrowserDriver) AppTerminate(packageName string, opts ...option.ActionOption) (bool, error) {
actionOptions := option.NewActionOptions(opts...)
preHandler_AppTerminate(wd, actionOptions)
defer postHandler(wd, actionOptions)
func (wd *BrowserDriver) AppTerminate(packageName string) (bool, error) {
return true, wd.DeleteSession()
}
@@ -482,7 +474,7 @@ func (wd *BrowserDriver) Back() error {
return wd.PressBack()
}
func (wd *BrowserDriver) AppClear(packageName string, opts ...option.ActionOption) error {
func (wd *BrowserDriver) AppClear(packageName string) error {
return errors.New("not support")
}

View File

@@ -69,9 +69,9 @@ type IDriver interface {
Backspace(count int, opts ...option.ActionOption) error
// app related
AppLaunch(packageName string, opts ...option.ActionOption) error
AppTerminate(packageName string, opts ...option.ActionOption) (bool, error)
AppClear(packageName string, opts ...option.ActionOption) error
AppLaunch(packageName string) error
AppTerminate(packageName string) (bool, error)
AppClear(packageName string) error
// image related
PushImage(localPath string) error

View File

@@ -145,13 +145,13 @@ func (dExt *XTDriver) DoAction(action MobileAction) (err error) {
}
case ACTION_AppClear:
if packageName, ok := action.Params.(string); ok {
if err = dExt.AppClear(packageName, action.GetOptions()...); err != nil {
if err = dExt.AppClear(packageName); err != nil {
return errors.Wrap(err, "failed to clear app")
}
}
case ACTION_AppLaunch:
if bundleId, ok := action.Params.(string); ok {
return dExt.AppLaunch(bundleId, action.GetOptions()...)
return dExt.AppLaunch(bundleId)
}
return fmt.Errorf("invalid %s params, should be bundleId(string), got %v",
ACTION_AppLaunch, action.Params)
@@ -177,7 +177,7 @@ func (dExt *XTDriver) DoAction(action MobileAction) (err error) {
return fmt.Errorf("invalid %s params: %v", ACTION_SwipeToTapTexts, action.Params)
case ACTION_AppTerminate:
if bundleId, ok := action.Params.(string); ok {
success, err := dExt.AppTerminate(bundleId, action.GetOptions()...)
success, err := dExt.AppTerminate(bundleId)
if err != nil {
return errors.Wrap(err, "failed to terminate app")
}

View File

@@ -114,13 +114,5 @@ func preHandler_Swipe(driver IDriver, options *option.ActionOptions, rawFomX, ra
return fromX, fromY, toX, toY, nil
}
func preHandler_AppLaunch(_ IDriver, options *option.ActionOptions) (err error) {
return nil
}
func preHandler_AppTerminate(_ IDriver, options *option.ActionOptions) (err error) {
return nil
}
func postHandler(_ IDriver, options *option.ActionOptions) {
}

View File

@@ -119,22 +119,13 @@ func (hd *HDCDriver) Unlock() (err error) {
return hd.Swipe(500, 1500, 500, 500)
}
func (hd *HDCDriver) AppLaunch(packageName string, opts ...option.ActionOption) error {
actionOptions := option.NewActionOptions(opts...)
preHandler_AppLaunch(hd, actionOptions)
defer postHandler(hd, actionOptions)
func (hd *HDCDriver) AppLaunch(packageName string) error {
// Todo
return types.ErrDriverNotImplemented
}
func (hd *HDCDriver) AppTerminate(packageName string, opts ...option.ActionOption) (bool, error) {
func (hd *HDCDriver) AppTerminate(packageName string) (bool, error) {
log.Info().Str("packageName", packageName).Msg("HDCDriver.AppTerminate")
actionOptions := option.NewActionOptions(opts...)
preHandler_AppTerminate(hd, actionOptions)
defer postHandler(hd, actionOptions)
_, err := hd.Device.RunShellCommand("aa", "force-stop", packageName)
if err != nil {
log.Error().Err(err).Msg("failed to terminal app")
@@ -223,7 +214,7 @@ func (hd *HDCDriver) Input(text string, opts ...option.ActionOption) error {
return hd.uiDriver.InputText(text)
}
func (hd *HDCDriver) AppClear(packageName string, opts ...option.ActionOption) error {
func (hd *HDCDriver) AppClear(packageName string) error {
return types.ErrDriverNotImplemented
}

View File

@@ -491,14 +491,10 @@ func (wd *WDADriver) AlertSendKeys(text string) (err error) {
return
}
func (wd *WDADriver) AppLaunch(bundleId string, opts ...option.ActionOption) (err error) {
func (wd *WDADriver) AppLaunch(bundleId string) (err error) {
log.Info().Str("bundleId", bundleId).Msg("WDADriver.AppLaunch")
// [[FBRoute POST:@"/wda/apps/launch"] respondWithTarget:self action:@selector(handleSessionAppLaunch:)]
actionOptions := option.NewActionOptions(opts...)
preHandler_AppLaunch(wd, actionOptions)
defer postHandler(wd, actionOptions)
data := make(map[string]interface{})
data["bundleId"] = bundleId
data["environment"] = map[string]interface{}{
@@ -525,14 +521,9 @@ func (wd *WDADriver) AppLaunchUnattached(bundleId string) (err error) {
return nil
}
func (wd *WDADriver) AppTerminate(bundleId string, opts ...option.ActionOption) (successful bool, err error) {
func (wd *WDADriver) AppTerminate(bundleId string) (successful bool, err error) {
log.Info().Str("bundleId", bundleId).Msg("WDADriver.AppTerminate")
// [[FBRoute POST:@"/wda/apps/terminate"] respondWithTarget:self action:@selector(handleSessionAppTerminate:)]
actionOptions := option.NewActionOptions(opts...)
preHandler_AppTerminate(wd, actionOptions)
defer postHandler(wd, actionOptions)
data := map[string]interface{}{"bundleId": bundleId}
var rawResp DriverRawResponse
urlStr := fmt.Sprintf("/session/%s/wda/apps/terminate", wd.Session.ID)
@@ -744,7 +735,7 @@ func (wd *WDADriver) Backspace(count int, opts ...option.ActionOption) (err erro
return
}
func (wd *WDADriver) AppClear(packageName string, opts ...option.ActionOption) error {
func (wd *WDADriver) AppClear(packageName string) error {
return types.ErrDriverNotImplemented
}