Mark options of disabled select non-interactable (#540)

This commit is contained in:
Kerem Yilmaz
2024-07-03 01:38:50 -07:00
committed by GitHub
parent 7479918680
commit 22566f01ce
5 changed files with 65 additions and 2 deletions

View File

@@ -109,6 +109,9 @@ class ActionHandler:
if action.action_type in ActionHandler._handled_action_types:
actions_result: list[ActionResult] = []
if invalid_web_action_check := check_for_invalid_web_action(action, page, scraped_page, task, step):
return invalid_web_action_check
# do setup before action handler
if setup := ActionHandler._setup_action_types.get(action.action_type):
results = await setup(action, page, scraped_page, task, step)
@@ -158,6 +161,19 @@ class ActionHandler:
return [ActionFailure(e)]
def check_for_invalid_web_action(
action: actions.Action,
page: Page,
scraped_page: ScrapedPage,
task: Task,
step: Step,
) -> list[ActionResult]:
if isinstance(action, WebAction) and action.element_id not in scraped_page.id_to_element_dict:
return [ActionFailure(MissingElement(element_id=action.element_id), stop_execution_on_failure=False)]
return []
async def handle_solve_captcha_action(
action: actions.SolveCaptchaAction,
page: Page,