mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-18 22:57:34 +08:00
refactor: move hrp/ to root folder
This commit is contained in:
62
pkg/uixt/android_layout.go
Normal file
62
pkg/uixt/android_layout.go
Normal file
@@ -0,0 +1,62 @@
|
||||
package uixt
|
||||
|
||||
import (
|
||||
"encoding/xml"
|
||||
"fmt"
|
||||
"regexp"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
type Attributes struct {
|
||||
Index int `xml:"index,attr"`
|
||||
Package string `xml:"package,attr"`
|
||||
Class string `xml:"class,attr"`
|
||||
Text string `xml:"text,attr"`
|
||||
ResourceId string `xml:"resource-id,attr"`
|
||||
Checkable bool `xml:"checkable,attr"`
|
||||
Checked bool `xml:"checked,attr"`
|
||||
Clickable bool `xml:"clickable,attr"`
|
||||
Enabled bool `xml:"enabled,attr"`
|
||||
Focusable bool `xml:"focusable,attr"`
|
||||
Focused bool `xml:"focused,attr"`
|
||||
LongClickable bool `xml:"long-clickable,attr"`
|
||||
Password bool `xml:"password,attr"`
|
||||
Scrollable bool `xml:"scrollable,attr"`
|
||||
Selected bool `xml:"selected,attr"`
|
||||
Bounds *Bounds `xml:"bounds,attr"`
|
||||
Displayed bool `xml:"displayed,attr"`
|
||||
}
|
||||
|
||||
type Hierarchy struct {
|
||||
XMLName xml.Name `xml:"hierarchy"`
|
||||
Attributes
|
||||
Layout []Layout `xml:",any"`
|
||||
}
|
||||
|
||||
type Layout struct {
|
||||
Attributes
|
||||
Layout []Layout `xml:",any"`
|
||||
}
|
||||
|
||||
type Bounds struct {
|
||||
X1, Y1, X2, Y2 int
|
||||
}
|
||||
|
||||
func (b *Bounds) Center() (float64, float64) {
|
||||
return float64(b.X1+b.X2) / 2, float64(b.Y1+b.Y2) / 2
|
||||
}
|
||||
|
||||
func (b *Bounds) UnmarshalXMLAttr(attr xml.Attr) error {
|
||||
// 正则表达式用于解析格式为"[x1,y1][x2,y2]"
|
||||
re := regexp.MustCompile(`\[(\d+),(\d+)]\[(\d+),(\d+)]`)
|
||||
matches := re.FindStringSubmatch(attr.Value)
|
||||
if matches == nil {
|
||||
return fmt.Errorf("bounds format is incorrect")
|
||||
}
|
||||
// 转换字符串为整数
|
||||
b.X1, _ = strconv.Atoi(matches[1])
|
||||
b.Y1, _ = strconv.Atoi(matches[2])
|
||||
b.X2, _ = strconv.Atoi(matches[3])
|
||||
b.Y2, _ = strconv.Atoi(matches[4])
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user