change: update NewData function

This commit is contained in:
xucong.053
2022-10-17 15:28:46 +08:00
parent 0e248882b1
commit 317ec4fde8
7 changed files with 17 additions and 37 deletions

View File

@@ -492,8 +492,7 @@ func (ud *uiaDriver) TapFloat(x, y float64, options ...DataOption) (err error) {
"y": y, "y": y,
} }
// new data options in post data for extra uiautomator configurations // new data options in post data for extra uiautomator configurations
d := NewData(options...) d := NewData(data, options...)
d.MergeData(data)
_, err = ud.httpPOST(d.Data, "/session", ud.sessionId, "appium/tap") _, err = ud.httpPOST(d.Data, "/session", ud.sessionId, "appium/tap")
return return
@@ -551,8 +550,7 @@ func (ud *uiaDriver) DragFloat(fromX, fromY, toX, toY float64, options ...DataOp
} }
// new data options in post data for extra uiautomator configurations // new data options in post data for extra uiautomator configurations
d := NewData(options...) d := NewData(data, options...)
d.MergeData(data)
return ud._drag(d.Data) return ud._drag(d.Data)
} }
@@ -567,8 +565,7 @@ func (ud *uiaDriver) _swipe(startX, startY, endX, endY interface{}, options ...D
} }
// new data options in post data for extra uiautomator configurations // new data options in post data for extra uiautomator configurations
d := NewData(options...) d := NewData(data, options...)
d.MergeData(data)
_, err = ud.httpPOST(d.Data, "/session", ud.sessionId, "touch/perform") _, err = ud.httpPOST(d.Data, "/session", ud.sessionId, "touch/perform")
return return
@@ -660,8 +657,7 @@ func (ud *uiaDriver) SendKeys(text string, options ...DataOption) (err error) {
"text": text, "text": text,
} }
// new data options in post data for extra uiautomator configurations // new data options in post data for extra uiautomator configurations
d := NewData(options...) d := NewData(data, options...)
d.MergeData(data)
_, err = ud.httpPOST(d.Data, "/session", ud.sessionId, "keys") _, err = ud.httpPOST(d.Data, "/session", ud.sessionId, "keys")
return return
@@ -672,8 +668,7 @@ func (ud *uiaDriver) Input(text string, options ...DataOption) (err error) {
"view": text, "view": text,
} }
// new data options in post data for extra uiautomator configurations // new data options in post data for extra uiautomator configurations
d := NewData(options...) d := NewData(data, options...)
d.MergeData(data)
var element WebElement var element WebElement
if valuetext, ok := d.Data["textview"]; ok { if valuetext, ok := d.Data["textview"]; ok {

View File

@@ -30,8 +30,7 @@ func (ue uiaElement) SendKeys(text string, options ...DataOption) (err error) {
} }
// new data options in post data for extra uiautomator configurations // new data options in post data for extra uiautomator configurations
d := NewData(options...) d := NewData(data, options...)
d.MergeData(data)
_, err = ue.parent.httpPOST(d.Data, "/session", ue.parent.sessionId, "/element", ue.id, "/value") _, err = ue.parent.httpPOST(d.Data, "/session", ue.parent.sessionId, "/element", ue.id, "/value")
return return

View File

@@ -837,9 +837,9 @@ type DataOptions struct {
IgnoreNotFoundError bool // ignore error if target element not found IgnoreNotFoundError bool // ignore error if target element not found
} }
func NewData(options ...DataOption) *DataOptions { func NewData(d map[string]interface{}, options ...DataOption) *DataOptions {
data := &DataOptions{ data := &DataOptions{
Data: map[string]interface{}{}, Data: d,
} }
for _, option := range options { for _, option := range options {
option(data) option(data)
@@ -868,16 +868,6 @@ func NewData(options ...DataOption) *DataOptions {
return data return data
} }
func (d *DataOptions) MergeData(data map[string]interface{}) {
for key, value := range data {
d.Data[key] = value
}
}
func (d *DataOptions) AddData(key string, value interface{}) {
d.Data[key] = value
}
// current implemeted device: IOSDevice, AndroidDevice // current implemeted device: IOSDevice, AndroidDevice
type Device interface { type Device interface {
UUID() string UUID() string

View File

@@ -380,8 +380,7 @@ func (wd *wdaDriver) TapFloat(x, y float64, options ...DataOption) (err error) {
"y": y, "y": y,
} }
// new data options in post data for extra WDA configurations // new data options in post data for extra WDA configurations
d := NewData(options...) d := NewData(data, options...)
d.MergeData(data)
_, err = wd.httpPOST(d.Data, "/session", wd.sessionId, "/wda/tap/0") _, err = wd.httpPOST(d.Data, "/session", wd.sessionId, "/wda/tap/0")
return return
@@ -433,8 +432,7 @@ func (wd *wdaDriver) DragFloat(fromX, fromY, toX, toY float64, options ...DataOp
} }
// new data options in post data for extra WDA configurations // new data options in post data for extra WDA configurations
d := NewData(options...) d := NewData(data, options...)
d.MergeData(data)
_, err = wd.httpPOST(d.Data, "/session", wd.sessionId, "/wda/dragfromtoforduration") _, err = wd.httpPOST(d.Data, "/session", wd.sessionId, "/wda/dragfromtoforduration")
return return
@@ -509,8 +507,7 @@ func (wd *wdaDriver) SendKeys(text string, options ...DataOption) (err error) {
data := map[string]interface{}{"value": strings.Split(text, "")} data := map[string]interface{}{"value": strings.Split(text, "")}
// new data options in post data for extra WDA configurations // new data options in post data for extra WDA configurations
d := NewData(options...) d := NewData(data, options...)
d.MergeData(data)
_, err = wd.httpPOST(d.Data, "/session", wd.sessionId, "/wda/keys") _, err = wd.httpPOST(d.Data, "/session", wd.sessionId, "/wda/keys")
return return

View File

@@ -31,8 +31,7 @@ func (we wdaElement) SendKeys(text string, options ...DataOption) (err error) {
"value": strings.Split(text, ""), "value": strings.Split(text, ""),
} }
// new data options in post data for extra uiautomator configurations // new data options in post data for extra uiautomator configurations
d := NewData(options...) d := NewData(data, options...)
d.MergeData(data)
_, err = we.parent.httpPOST(d.Data, "/session", we.parent.sessionId, "/element", we.id, "/value") _, err = we.parent.httpPOST(d.Data, "/session", we.parent.sessionId, "/element", we.id, "/value")
return return

View File

@@ -110,7 +110,7 @@ func getLogID(header http.Header) string {
} }
func (s *veDEMOCRService) FindText(text string, imageBuf []byte, options ...DataOption) (rect image.Rectangle, err error) { func (s *veDEMOCRService) FindText(text string, imageBuf []byte, options ...DataOption) (rect image.Rectangle, err error) {
data := NewData(options...) data := NewData(map[string]interface{}{}, options...)
ocrResults, err := s.getOCRResult(imageBuf) ocrResults, err := s.getOCRResult(imageBuf)
if err != nil { if err != nil {
@@ -184,7 +184,7 @@ func (s *veDEMOCRService) FindTexts(texts []string, imageBuf []byte, options ...
return return
} }
data := NewData(options...) data := NewData(map[string]interface{}{}, options...)
ocrTexts := map[string]bool{} ocrTexts := map[string]bool{}
var success bool var success bool

View File

@@ -65,7 +65,7 @@ func (dExt *DriverExt) GetImageXY(imagePath string, options ...DataOption) (poin
} }
func (dExt *DriverExt) TapByOCR(ocrText string, options ...DataOption) error { func (dExt *DriverExt) TapByOCR(ocrText string, options ...DataOption) error {
data := NewData(options...) data := NewData(map[string]interface{}{}, options...)
point, err := dExt.GetTextXY(ocrText, options...) point, err := dExt.GetTextXY(ocrText, options...)
if err != nil { if err != nil {
@@ -79,7 +79,7 @@ func (dExt *DriverExt) TapByOCR(ocrText string, options ...DataOption) error {
} }
func (dExt *DriverExt) TapByCV(imagePath string, options ...DataOption) error { func (dExt *DriverExt) TapByCV(imagePath string, options ...DataOption) error {
data := NewData(options...) data := NewData(map[string]interface{}{}, options...)
point, err := dExt.GetImageXY(imagePath, options...) point, err := dExt.GetImageXY(imagePath, options...)
if err != nil { if err != nil {
@@ -103,7 +103,7 @@ func (dExt *DriverExt) TapOffset(param string, xOffset, yOffset float64, options
return ele.Click() return ele.Click()
} }
data := NewData(options...) data := NewData(map[string]interface{}{}, options...)
x, y, width, height, err := dExt.FindUIRectInUIKit(param, options...) x, y, width, height, err := dExt.FindUIRectInUIKit(param, options...)
if err != nil { if err != nil {