fix: sleep specified seconds

This commit is contained in:
debugtalk
2022-09-18 10:42:31 +08:00
parent f746f816b7
commit 6e94230ad6
2 changed files with 11 additions and 4 deletions

View File

@@ -17,6 +17,7 @@ import (
"github.com/electricbubble/gwda"
cvHelper "github.com/electricbubble/opencv-helper"
"github.com/pkg/errors"
"github.com/rs/zerolog/log"
)
// TemplateMatchMode is the type of the template matching operation.
@@ -170,6 +171,7 @@ func (dExt *DriverExt) takeScreenShot() (raw *bytes.Buffer, err error) {
return dExt.frame, nil
}
if raw, err = dExt.WebDriver.Screenshot(); err != nil {
log.Error().Err(err).Msgf("screenshot failed: %v", err)
return nil, err
}
return

View File

@@ -1,6 +1,7 @@
package hrp
import (
"encoding/json"
"fmt"
"strings"
"time"
@@ -241,7 +242,7 @@ func (s *StepIOS) Times(n int) *StepIOS {
}
// Sleep specify sleep seconds after last action
func (s *StepIOS) Sleep(n int) *StepIOS {
func (s *StepIOS) Sleep(n float64) *StepIOS {
s.step.IOS.Actions = append(s.step.IOS.Actions, MobileAction{
Method: ctlSleep,
Params: n,
@@ -707,11 +708,15 @@ func (ud *uiDriver) doAction(action MobileAction) error {
param := fmt.Sprintf("%v", action.Params)
return ud.SendKeys(param)
case ctlSleep:
if param, ok := action.Params.(int); ok {
time.Sleep(time.Duration(param) * time.Second)
if param, ok := action.Params.(json.Number); ok {
seconds, _ := param.Float64()
time.Sleep(time.Duration(seconds*1000) * time.Millisecond)
return nil
} else if param, ok := action.Params.(float64); ok {
time.Sleep(time.Duration(param*1000) * time.Millisecond)
return nil
}
return fmt.Errorf("invalid sleep params: %v", action.Params)
return fmt.Errorf("invalid sleep params: %v(%T)", action.Params, action.Params)
case ctlScreenShot:
// take snapshot
log.Info().Msg("take snapshot for current screen")