(index: int, direction: Literal['up', 'down', 'left', 'right'], mac_tree_builder: MacUITreeBuilder)
| 143 | requires_mac_builder=True |
| 144 | ) |
| 145 | async def scroll_element(index: int, direction: Literal['up', 'down', 'left', 'right'], mac_tree_builder: MacUITreeBuilder): |
| 146 | logger.debug(f'Scrolling element {index} {direction}') |
| 147 | try: |
| 148 | if index in mac_tree_builder._element_cache: |
| 149 | element_to_scroll = mac_tree_builder._element_cache[index] |
| 150 | |
| 151 | if not element_to_scroll.enabled: |
| 152 | msg = f'❌ Cannot scroll: Element is disabled: {element_to_scroll}' |
| 153 | return ActionResult(extracted_content=msg, error=msg) |
| 154 | |
| 155 | scroll_successful = scroll(element_to_scroll, direction) |
| 156 | if scroll_successful: |
| 157 | return ActionResult(extracted_content=f'Successfully scrolled element with index {index} {direction}') |
| 158 | else: |
| 159 | msg = f'❌ Scroll failed for element with index {index}' |
| 160 | return ActionResult(extracted_content=msg, error=msg) |
| 161 | else: |
| 162 | msg = f'❌ Invalid index: {index}' |
| 163 | return ActionResult(extracted_content=msg, error=msg) |
| 164 | except Exception as e: |
| 165 | msg = f'❌ An error occurred: {str(e)}' |
| 166 | logging.error(msg) |
| 167 | return ActionResult(extracted_content=msg, error=msg) |
| 168 | |
| 169 | @self.registry.action( |
| 170 | 'Open a mac app', |
nothing calls this directly
no test coverage detected