diff --git a/hrp/internal/env/env.go b/hrp/internal/env/env.go index 4fbb84e0..075b7f42 100644 --- a/hrp/internal/env/env.go +++ b/hrp/internal/env/env.go @@ -3,12 +3,14 @@ package env import "os" var ( - WDA_USB_DRIVER = os.Getenv("WDA_USB_DRIVER") - VEDEM_OCR_URL = os.Getenv("VEDEM_OCR_URL") - VEDEM_OCR_AK = os.Getenv("VEDEM_OCR_AK") - VEDEM_OCR_SK = os.Getenv("VEDEM_OCR_SK") - DISABLE_GA = os.Getenv("DISABLE_GA") - DISABLE_SENTRY = os.Getenv("DISABLE_SENTRY") - PYPI_INDEX_URL = os.Getenv("PYPI_INDEX_URL") - PATH = os.Getenv("PATH") + WDA_USB_DRIVER = os.Getenv("WDA_USB_DRIVER") + WDA_LOCAL_PORT = os.Getenv("WDA_LOCAL_PORT") + WDA_LOCAL_MJPEG_PORT = os.Getenv("WDA_LOCAL_MJPEG_PORT") + VEDEM_OCR_URL = os.Getenv("VEDEM_OCR_URL") + VEDEM_OCR_AK = os.Getenv("VEDEM_OCR_AK") + VEDEM_OCR_SK = os.Getenv("VEDEM_OCR_SK") + DISABLE_GA = os.Getenv("DISABLE_GA") + DISABLE_SENTRY = os.Getenv("DISABLE_SENTRY") + PYPI_INDEX_URL = os.Getenv("PYPI_INDEX_URL") + PATH = os.Getenv("PATH") ) diff --git a/hrp/pkg/uixt/ios_device.go b/hrp/pkg/uixt/ios_device.go index 6b2cadc1..0f8668c6 100644 --- a/hrp/pkg/uixt/ios_device.go +++ b/hrp/pkg/uixt/ios_device.go @@ -13,6 +13,7 @@ import ( "net/url" "os" "regexp" + "strconv" "strings" "time" @@ -384,23 +385,33 @@ func (dev *IOSDevice) perfOpitons() (perfOptions []giDevice.PerfOption) { // NewHTTPDriver creates new remote HTTP client, this will also start a new session. func (dev *IOSDevice) NewHTTPDriver(capabilities Capabilities) (driver WebDriver, err error) { - localPort, err := getFreePort() + var localPort int + localPort, err = strconv.Atoi(env.WDA_LOCAL_PORT) if err != nil { - return nil, errors.Wrap(code.IOSDeviceHTTPDriverError, - fmt.Sprintf("get free port failed: %v", err)) + localPort, err = getFreePort() + if err != nil { + return nil, errors.Wrap(code.IOSDeviceHTTPDriverError, + fmt.Sprintf("get free port failed: %v", err)) + } + + if err = dev.forward(localPort, dev.Port); err != nil { + return nil, errors.Wrap(code.IOSDeviceHTTPDriverError, + fmt.Sprintf("forward tcp port failed: %v", err)) + } } - if err = dev.forward(localPort, dev.Port); err != nil { - return nil, errors.Wrap(code.IOSDeviceHTTPDriverError, - fmt.Sprintf("forward tcp port failed: %v", err)) - } - localMjpegPort, err := getFreePort() + + var localMjpegPort int + localMjpegPort, err = strconv.Atoi(env.WDA_LOCAL_MJPEG_PORT) if err != nil { - return nil, errors.Wrap(code.IOSDeviceHTTPDriverError, - fmt.Sprintf("get free port failed: %v", err)) - } - if err = dev.forward(localMjpegPort, dev.MjpegPort); err != nil { - return nil, errors.Wrap(code.IOSDeviceHTTPDriverError, - fmt.Sprintf("forward tcp port failed: %v", err)) + localMjpegPort, err = getFreePort() + if err != nil { + return nil, errors.Wrap(code.IOSDeviceHTTPDriverError, + fmt.Sprintf("get free port failed: %v", err)) + } + if err = dev.forward(localMjpegPort, dev.MjpegPort); err != nil { + return nil, errors.Wrap(code.IOSDeviceHTTPDriverError, + fmt.Sprintf("forward tcp port failed: %v", err)) + } } log.Info().Interface("capabilities", capabilities).