diff --git a/daemon/daemon.go b/daemon/daemon.go index 3c0d331..0fc98ca 100644 --- a/daemon/daemon.go +++ b/daemon/daemon.go @@ -3494,26 +3494,29 @@ func (d *Daemon) interactMultiple(tabID, interactionsJSON string, timeout int) ( case "select": // For select elements, use JavaScript to set the value script := fmt.Sprintf(` - if (this.tagName.toLowerCase() === 'select') { - // Try to select by value first - for (let option of this.options) { - if (option.value === '%s') { - this.value = '%s'; - this.dispatchEvent(new Event('change', { bubbles: true })); - break; - } - } - // Try to select by text if value didn't work - if (this.value !== '%s') { + (() => { + if (this.tagName.toLowerCase() === 'select') { + // Try to select by value first for (let option of this.options) { - if (option.text === '%s') { - this.value = option.value; + if (option.value === '%s') { + this.value = '%s'; this.dispatchEvent(new Event('change', { bubbles: true })); break; } } + // Try to select by text if value didn't work + if (this.value !== '%s') { + for (let option of this.options) { + if (option.text === '%s') { + this.value = option.value; + this.dispatchEvent(new Event('change', { bubbles: true })); + break; + } + } + } } - } + return true; + })() `, interaction.Value, interaction.Value, interaction.Value, interaction.Value) _, err := element.Eval(script)