Skip to content

Commit

Permalink
Select option handler bugfix (#482)
Browse files Browse the repository at this point in the history
  • Loading branch information
ykeremy committed Jun 17, 2024
1 parent df2c55b commit 07fd58b
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions skyvern/webeye/actions/handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -516,8 +516,11 @@ async def handle_select_option_action(
check_action = CheckboxAction(element_id=action.element_id, is_checked=True)
return await handle_checkbox_action(check_action, page, scraped_page, task, step)

current_text = await locator.input_value()
if current_text == action.option.label:
current_value = await locator.input_value()
# find the text of the option with the current value
option_locator = locator.locator(f'option[value="{current_value}"]')
option_text = await option_locator.text_content()
if option_text == action.option.label:
return [ActionSuccess()]

try:
Expand All @@ -529,9 +532,8 @@ async def handle_select_option_action(
label=action.option.label,
timeout=SettingsManager.get_settings().BROWSER_ACTION_TIMEOUT_MS,
)
await locator.click(
timeout=SettingsManager.get_settings().BROWSER_ACTION_TIMEOUT_MS,
)
# In case we need to unfocus the select element, press Tab
await page.keyboard.press("Tab")
return [ActionSuccess()]
except Exception as e:
if action.option.index is not None:
Expand Down

0 comments on commit 07fd58b

Please sign in to comment.