bulk
This commit is contained in:
@@ -3564,30 +3564,84 @@ func (d *Daemon) fillFormBulk(tabID, formSelector, fieldsJSON string, timeout in
|
||||
if timeout > 0 {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), time.Duration(timeout)*time.Second)
|
||||
element, err = form.Context(ctx).Element(selector)
|
||||
cancel()
|
||||
// Don't cancel yet if element found - we need context for filling
|
||||
if err == nil {
|
||||
fieldResult.Selector = selector
|
||||
// Fill the field while context is still valid
|
||||
err = element.SelectAllText()
|
||||
if err == nil {
|
||||
err = element.Input("")
|
||||
}
|
||||
if err == nil {
|
||||
err = element.Input(fieldValue)
|
||||
}
|
||||
cancel() // Now we can cancel
|
||||
break
|
||||
}
|
||||
cancel() // Cancel if element not found
|
||||
} else {
|
||||
element, err = form.Element(selector)
|
||||
}
|
||||
if err == nil {
|
||||
fieldResult.Selector = selector
|
||||
break
|
||||
if err == nil {
|
||||
fieldResult.Selector = selector
|
||||
// Fill the field
|
||||
err = element.SelectAllText()
|
||||
if err == nil {
|
||||
err = element.Input("")
|
||||
}
|
||||
if err == nil {
|
||||
err = element.Input(fieldValue)
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// If not found in form or no form, search in entire page
|
||||
if element == nil {
|
||||
// Generate selectors if not already done
|
||||
if selectors == nil {
|
||||
selectors = []string{
|
||||
fmt.Sprintf("[name='%s']", fieldName),
|
||||
fmt.Sprintf("#%s", fieldName),
|
||||
fmt.Sprintf("[id='%s']", fieldName),
|
||||
fieldName, // In case it's already a full selector
|
||||
}
|
||||
}
|
||||
|
||||
for _, selector := range selectors {
|
||||
if timeout > 0 {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), time.Duration(timeout)*time.Second)
|
||||
element, err = page.Context(ctx).Element(selector)
|
||||
cancel()
|
||||
// Don't cancel yet - we need the context for filling
|
||||
if err == nil {
|
||||
fieldResult.Selector = selector
|
||||
// Fill the field while context is still valid
|
||||
err = element.SelectAllText()
|
||||
if err == nil {
|
||||
err = element.Input("")
|
||||
}
|
||||
if err == nil {
|
||||
err = element.Input(fieldValue)
|
||||
}
|
||||
cancel() // Now we can cancel
|
||||
break
|
||||
}
|
||||
cancel() // Cancel if element not found
|
||||
} else {
|
||||
element, err = page.Element(selector)
|
||||
}
|
||||
if err == nil {
|
||||
fieldResult.Selector = selector
|
||||
break
|
||||
if err == nil {
|
||||
fieldResult.Selector = selector
|
||||
// Fill the field
|
||||
err = element.SelectAllText()
|
||||
if err == nil {
|
||||
err = element.Input("")
|
||||
}
|
||||
if err == nil {
|
||||
err = element.Input(fieldValue)
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3599,15 +3653,6 @@ func (d *Daemon) fillFormBulk(tabID, formSelector, fieldsJSON string, timeout in
|
||||
continue
|
||||
}
|
||||
|
||||
// Fill the field
|
||||
err = element.SelectAllText()
|
||||
if err == nil {
|
||||
err = element.Input("")
|
||||
}
|
||||
if err == nil {
|
||||
err = element.Input(fieldValue)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
fieldResult.Error = fmt.Sprintf("failed to fill field: %v", err)
|
||||
result.ErrorCount++
|
||||
|
Reference in New Issue
Block a user