Select option handler bugfix (#482)

This commit is contained in:
Kerem Yilmaz
2024-06-17 08:37:31 -07:00
committed by GitHub
parent df2c55ba86
commit 07fd58be23

View File

@@ -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:
@@ -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: