feat: input text with adb

This commit is contained in:
debugtalk
2022-12-26 22:15:40 +08:00
parent 64f1a28605
commit 994a91bb84
2 changed files with 4 additions and 93 deletions

View File

@@ -132,12 +132,11 @@ func (ad *adbDriver) StopCamera() (err error) {
}
// kill samsung shell command
if _, err = ad.adbClient.RunShellCommand("am", "force-stop", "com.sec.android.app.camera"); err != nil {
if _, err = ad.AppTerminate("com.sec.android.app.camera"); err != nil {
return err
}
// kill other camera (huawei mi)
if _, err = ad.adbClient.RunShellCommand("am", "force-stop", "com.android.camera2"); err != nil {
if _, err = ad.AppTerminate("com.android.camera2"); err != nil {
return err
}
return
@@ -248,7 +247,8 @@ func (ad *adbDriver) GetPasteboard(contentType PasteboardType) (raw *bytes.Buffe
}
func (ad *adbDriver) SendKeys(text string, options ...DataOption) (err error) {
err = errDriverNotImplemented
// adb shell input text <text>
_, err = ad.adbClient.RunShellCommand("input", "text", text)
return
}

View File

@@ -142,11 +142,6 @@ func (ud *uiaDriver) DeviceInfo() (deviceInfo DeviceInfo, err error) {
return
}
func (ud *uiaDriver) Location() (location Location, err error) {
// TODO
return location, errDriverNotImplemented
}
func (ud *uiaDriver) BatteryInfo() (batteryInfo BatteryInfo, err error) {
// register(getHandler, new GetBatteryInfo("/wd/hub/session/:sessionId/appium/device/battery_info"))
var rawResp rawResponse
@@ -178,15 +173,6 @@ func (ud *uiaDriver) WindowSize() (size Size, err error) {
return
}
func (ud *uiaDriver) Screen() (screen Screen, err error) {
// TODO
return screen, errDriverNotImplemented
}
func (ud *uiaDriver) Scale() (scale float64, err error) {
return 1, nil
}
// PressBack simulates a short press on the BACK button.
func (ud *uiaDriver) PressBack(options ...DataOption) (err error) {
// register(postHandler, new PressBack("/wd/hub/session/:sessionId/back"))
@@ -230,15 +216,6 @@ func (ud *uiaDriver) TapFloat(x, y float64, options ...DataOption) (err error) {
return
}
func (ud *uiaDriver) DoubleTap(x, y int) error {
return ud.DoubleTapFloat(float64(x), float64(y))
}
func (ud *uiaDriver) DoubleTapFloat(x, y float64) (err error) {
// TODO
return errDriverNotImplemented
}
func (ud *uiaDriver) TouchAndHold(x, y int, second ...float64) (err error) {
return ud.TouchAndHoldFloat(float64(x), float64(y), second...)
}
@@ -307,15 +284,6 @@ func (ud *uiaDriver) SwipeFloat(fromX, fromY, toX, toY float64, options ...DataO
return err
}
func (ud *uiaDriver) ForceTouch(x, y int, pressure float64, second ...float64) error {
return ud.ForceTouchFloat(float64(x), float64(y), pressure, second...)
}
func (ud *uiaDriver) ForceTouchFloat(x, y, pressure float64, second ...float64) (err error) {
// TODO
return errDriverNotImplemented
}
func (ud *uiaDriver) SetPasteboard(contentType PasteboardType, content string) (err error) {
lbl := content
@@ -376,11 +344,6 @@ func (ud *uiaDriver) Input(text string, options ...DataOption) (err error) {
return ud.SendKeys(text, options...)
}
func (ud *uiaDriver) PressButton(devBtn DeviceButton) (err error) {
// TODO
return errDriverNotImplemented
}
func (ud *uiaDriver) Rotation() (rotation Rotation, err error) {
// register(getHandler, new GetRotation("/wd/hub/session/:sessionId/rotation"))
var rawResp rawResponse
@@ -396,20 +359,7 @@ func (ud *uiaDriver) Rotation() (rotation Rotation, err error) {
return
}
func (ud *uiaDriver) SetRotation(rotation Rotation) (err error) {
// TODO
return errDriverNotImplemented
}
func (ud *uiaDriver) Screenshot() (raw *bytes.Buffer, err error) {
// adb shell screencap -p
resp, err := ud.adbClient.RunShellCommandWithBytes(
"screencap", "-p",
)
if err == nil {
return bytes.NewBuffer(resp), nil
}
// register(getHandler, new CaptureScreenshot("/wd/hub/session/:sessionId/screenshot"))
var rawResp rawResponse
if rawResp, err = ud.httpGET("/session", ud.sessionId, "screenshot"); err != nil {
@@ -445,42 +395,3 @@ func (ud *uiaDriver) Source(srcOpt ...SourceOption) (source string, err error) {
source = reply.Value
return
}
func (ud *uiaDriver) AccessibleSource() (source string, err error) {
// TODO
return source, errDriverNotImplemented
}
func (ud *uiaDriver) HealthCheck() (err error) {
// TODO
return errDriverNotImplemented
}
func (ud *uiaDriver) GetAppiumSettings() (settings map[string]interface{}, err error) {
// register(getHandler, new GetSettings("/wd/hub/session/:sessionId/appium/settings"))
var rawResp rawResponse
if rawResp, err = ud.httpGET("/session", ud.sessionId, "appium/settings"); err != nil {
return nil, err
}
reply := new(struct{ Value map[string]interface{} })
if err = json.Unmarshal(rawResp, reply); err != nil {
return nil, err
}
settings = reply.Value
return
}
func (ud *uiaDriver) SetAppiumSettings(settings map[string]interface{}) (ret map[string]interface{}, err error) {
data := map[string]interface{}{
"settings": settings,
}
// register(postHandler, new UpdateSettings("/wd/hub/session/:sessionId/appium/settings"))
_, err = ud.httpPOST(data, "/session", ud.sessionId, "appium/settings")
return
}
func (ud *uiaDriver) IsHealthy() (healthy bool, err error) {
// TODO
return healthy, errDriverNotImplemented
}