refactor: BrowserDevice & BrowserDriver

This commit is contained in:
lilong.129
2025-03-03 22:03:42 +08:00
parent b687abb3c8
commit b69f5d5b25
7 changed files with 103 additions and 121 deletions

View File

@@ -3,7 +3,6 @@ package driver_ext
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
"net/url"
@@ -30,7 +29,7 @@ type CreateBrowserResponse struct {
}
type StubBrowserDriver struct {
*uixt.BrowserWebDriver
*uixt.BrowserDriver
urlPrefix *url.URL
sessionId string
scale float64
@@ -64,7 +63,6 @@ func CreateBrowser(timeout int) (browserInfo *BrowserInfo, err error) {
Timeout: 30 * time.Second, // 设置超时时间为5秒
}
resp, err := client.Do(req)
if err != nil {
return nil, err
}
@@ -87,31 +85,26 @@ func CreateBrowser(timeout int) (browserInfo *BrowserInfo, err error) {
return &result.Data, nil
}
func NewStubBrowserDriver(browserId string) (driver *StubBrowserDriver, err error) {
BrowserWebDriver, err := uixt.NewBrowserWebDriver(browserId)
func NewStubBrowserDriver(device *uixt.BrowserDevice) (driver *StubBrowserDriver, err error) {
BrowserWebDriver, err := uixt.NewBrowserDriver(device)
if err != nil {
return nil, errors.Wrap(err, "create browser session failed")
}
driver = &StubBrowserDriver{
BrowserWebDriver: BrowserWebDriver,
}
driver.sessionId = browserId
if err != nil {
return nil, fmt.Errorf("adb forward: %w", err)
BrowserDriver: BrowserWebDriver,
}
driver.sessionId = device.UUID()
return driver, nil
}
// Source Return application elements tree
func (wd *StubBrowserDriver) Source(srcOpt ...option.SourceOption) (string, error) {
resp, err := wd.BrowserWebDriver.HttpGet(http.MethodGet, wd.sessionId, "stub/source")
resp, err := wd.BrowserDriver.HttpGet(http.MethodGet, wd.sessionId, "stub/source")
if err != nil {
return "", err
}
jsonData, err := json.Marshal(resp.Data)
if err != nil {
return "", err
}
@@ -125,7 +118,6 @@ func (wd *StubBrowserDriver) LoginNoneUI(packageName, phoneNumber string, captch
"web_cookie": password,
}
resp, err := wd.HttpPOST(data, wd.sessionId, "stub/login")
if err != nil {
return info, err
}

View File

@@ -1,35 +1,29 @@
package driver_ext
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/httprunner/httprunner/v5/pkg/uixt"
"github.com/httprunner/httprunner/v5/pkg/uixt/option"
"testing"
)
var (
iOSStubDriver *StubIOSDriver
)
func checkErr(t *testing.T, err error, msg ...string) {
if err != nil {
if len(msg) == 0 {
t.Fatal(err)
} else {
t.Fatal(msg, err)
}
}
}
var iOSStubDriver *StubIOSDriver
func setupIOSStubDriver(t *testing.T) {
iOSDevice, err := uixt.NewIOSDevice(option.WithWDAPort(8700), option.WithWDAMjpegPort(8800), option.WithResetHomeOnStartup(false))
checkErr(t, err)
iOSDevice, err := uixt.NewIOSDevice(
option.WithWDAPort(8700),
option.WithWDAMjpegPort(8800),
option.WithResetHomeOnStartup(false))
assert.Nil(t, err)
iOSStubDriver, err = NewStubIOSDriver(iOSDevice)
checkErr(t, err)
assert.Nil(t, err)
}
func TestIOSStubDriver_LoginNoneUI(t *testing.T) {
setupIOSStubDriver(t)
info, err := iOSStubDriver.LoginNoneUI("com.ss.iphone.ugc.AwemeInhouse", "12343418541", "", "im112233")
checkErr(t, err)
assert.Nil(t, err)
t.Logf("login info: %+v", info)
}