fix: ignore step popup

This commit is contained in:
lilong.129
2025-07-09 23:03:31 +08:00
parent 184527d04f
commit a527834359
2 changed files with 8 additions and 1 deletions

View File

@@ -37,6 +37,7 @@ type StepConfig struct {
Validators []interface{} `json:"validate,omitempty" yaml:"validate,omitempty"`
StepExport []string `json:"export,omitempty" yaml:"export,omitempty"`
Loops int `json:"loops,omitempty" yaml:"loops,omitempty"`
IgnorePopup bool `json:"ignore_popup,omitempty" yaml:"ignore_popup,omitempty"` // ignore popup for this step, keep for compatibility
AutoPopupHandler bool `json:"auto_popup_handler,omitempty" yaml:"auto_popup_handler,omitempty"` // enable auto popup handler for this step
}

View File

@@ -715,6 +715,7 @@ func runStepMobileUI(s *SessionRunner, step IStep) (stepResult *StepResult, err
var stepVariables map[string]interface{}
var stepValidators []interface{}
var stepAutoPopupHandler bool
var stepIgnorePopup bool
var mobileStep *MobileUI
switch stepMobile := step.(type) {
@@ -722,11 +723,13 @@ func runStepMobileUI(s *SessionRunner, step IStep) (stepResult *StepResult, err
mobileStep = stepMobile.obj()
stepVariables = stepMobile.Variables
stepAutoPopupHandler = stepMobile.AutoPopupHandler
stepIgnorePopup = stepMobile.IgnorePopup
case *StepMobileUIValidation:
mobileStep = stepMobile.obj()
stepVariables = stepMobile.Variables
stepValidators = stepMobile.Validators
stepAutoPopupHandler = stepMobile.StepMobile.AutoPopupHandler
stepIgnorePopup = stepMobile.StepMobile.IgnorePopup
default:
return stepResult, errors.New("invalid mobile UI step type")
}
@@ -797,7 +800,10 @@ func runStepMobileUI(s *SessionRunner, step IStep) (stepResult *StepResult, err
// automatic handling of pop-up windows on each step finished
// priority: testcase config > step config, default to disabled
shouldHandlePopup := false
if config != nil && config.AutoPopupHandler {
if stepIgnorePopup {
// step level config, keep for compatibility
shouldHandlePopup = false
} else if config != nil && config.AutoPopupHandler {
// testcase level config has higher priority
shouldHandlePopup = true
} else if stepAutoPopupHandler {