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

@@ -1 +1 @@
v5.0.0-beta-2505121525 v5.0.0-beta-2505121727

View File

@@ -266,15 +266,11 @@ func (ad *ADBDriver) PressKeyCode(keyCode KeyCode, metaState KeyMeta) (err error
return 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") log.Info().Str("packageName", packageName).Msg("ADBDriver.AppLaunch")
// 不指定 Activity 名称启动(启动主 Activity // 不指定 Activity 名称启动(启动主 Activity
// adb shell monkey -p <packagename> -c android.intent.category.LAUNCHER 1 // 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( sOutput, err := ad.runShellCommand(
"monkey", "-p", packageName, "-c", "android.intent.category.LAUNCHER", "1", "monkey", "-p", packageName, "-c", "android.intent.category.LAUNCHER", "1",
) )
@@ -289,15 +285,10 @@ func (ad *ADBDriver) AppLaunch(packageName string, opts ...option.ActionOption)
return nil 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") log.Info().Str("packageName", packageName).Msg("ADBDriver.AppTerminate")
// 强制停止应用,停止 <packagename> 相关的进程 // 强制停止应用,停止 <packagename> 相关的进程
// adb shell am force-stop <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) _, err = ad.runShellCommand("am", "force-stop", packageName)
if err != nil { if err != nil {
return false, errors.Wrap(err, "force-stop app failed") return false, errors.Wrap(err, "force-stop app failed")
@@ -551,7 +542,7 @@ func (ad *ADBDriver) SendKeysByAdbKeyBoard(text string) (err error) {
return 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") log.Info().Str("packageName", packageName).Msg("ADBDriver.AppClear")
if _, err := ad.runShellCommand("pm", "clear", packageName); err != nil { if _, err := ad.runShellCommand("pm", "clear", packageName); err != nil {
log.Error().Str("packageName", packageName).Err(err).Msg("failed to clear package cache") 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 return
} }
func (wd *BrowserDriver) AppLaunch(packageName string, opts ...option.ActionOption) (err error) { func (wd *BrowserDriver) AppLaunch(packageName string) (err error) {
actionOptions := option.NewActionOptions(opts...)
preHandler_AppLaunch(wd, actionOptions)
defer postHandler(wd, actionOptions)
data := map[string]interface{}{ data := map[string]interface{}{
"url": packageName, "url": packageName,
} }
@@ -465,11 +461,7 @@ func (wd *BrowserDriver) Unlock() (err error) {
// AppTerminate Terminate an application with the given package name. // 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 // 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) { func (wd *BrowserDriver) AppTerminate(packageName string) (bool, error) {
actionOptions := option.NewActionOptions(opts...)
preHandler_AppTerminate(wd, actionOptions)
defer postHandler(wd, actionOptions)
return true, wd.DeleteSession() return true, wd.DeleteSession()
} }
@@ -482,7 +474,7 @@ func (wd *BrowserDriver) Back() error {
return wd.PressBack() 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") return errors.New("not support")
} }

View File

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

View File

@@ -145,13 +145,13 @@ func (dExt *XTDriver) DoAction(action MobileAction) (err error) {
} }
case ACTION_AppClear: case ACTION_AppClear:
if packageName, ok := action.Params.(string); ok { 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") return errors.Wrap(err, "failed to clear app")
} }
} }
case ACTION_AppLaunch: case ACTION_AppLaunch:
if bundleId, ok := action.Params.(string); ok { 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", return fmt.Errorf("invalid %s params, should be bundleId(string), got %v",
ACTION_AppLaunch, action.Params) 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) return fmt.Errorf("invalid %s params: %v", ACTION_SwipeToTapTexts, action.Params)
case ACTION_AppTerminate: case ACTION_AppTerminate:
if bundleId, ok := action.Params.(string); ok { if bundleId, ok := action.Params.(string); ok {
success, err := dExt.AppTerminate(bundleId, action.GetOptions()...) success, err := dExt.AppTerminate(bundleId)
if err != nil { if err != nil {
return errors.Wrap(err, "failed to terminate app") 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 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) { 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) return hd.Swipe(500, 1500, 500, 500)
} }
func (hd *HDCDriver) AppLaunch(packageName string, opts ...option.ActionOption) error { func (hd *HDCDriver) AppLaunch(packageName string) error {
actionOptions := option.NewActionOptions(opts...)
preHandler_AppLaunch(hd, actionOptions)
defer postHandler(hd, actionOptions)
// Todo // Todo
return types.ErrDriverNotImplemented 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") 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) _, err := hd.Device.RunShellCommand("aa", "force-stop", packageName)
if err != nil { if err != nil {
log.Error().Err(err).Msg("failed to terminal app") 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) 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 return types.ErrDriverNotImplemented
} }

View File

@@ -491,14 +491,10 @@ func (wd *WDADriver) AlertSendKeys(text string) (err error) {
return 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") log.Info().Str("bundleId", bundleId).Msg("WDADriver.AppLaunch")
// [[FBRoute POST:@"/wda/apps/launch"] respondWithTarget:self action:@selector(handleSessionAppLaunch:)] // [[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 := make(map[string]interface{})
data["bundleId"] = bundleId data["bundleId"] = bundleId
data["environment"] = map[string]interface{}{ data["environment"] = map[string]interface{}{
@@ -525,14 +521,9 @@ func (wd *WDADriver) AppLaunchUnattached(bundleId string) (err error) {
return nil 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") log.Info().Str("bundleId", bundleId).Msg("WDADriver.AppTerminate")
// [[FBRoute POST:@"/wda/apps/terminate"] respondWithTarget:self action:@selector(handleSessionAppTerminate:)] // [[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} data := map[string]interface{}{"bundleId": bundleId}
var rawResp DriverRawResponse var rawResp DriverRawResponse
urlStr := fmt.Sprintf("/session/%s/wda/apps/terminate", wd.Session.ID) 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 return
} }
func (wd *WDADriver) AppClear(packageName string, opts ...option.ActionOption) error { func (wd *WDADriver) AppClear(packageName string) error {
return types.ErrDriverNotImplemented return types.ErrDriverNotImplemented
} }