| 47 | |
| 48 | |
| 49 | class FolderCreationState: |
| 50 | def __init__(self): |
| 51 | self.new_folder_clicked = False |
| 52 | self.folder_name_entered = False |
| 53 | self.last_action = None |
| 54 | |
| 55 | def get_context(self, ui_tree_string: str) -> str: |
| 56 | if not self.new_folder_clicked: |
| 57 | return "Find and click the 'New Folder' button." |
| 58 | elif not self.folder_name_entered: |
| 59 | return "The 'New Folder' button has been clicked. Look for the newly appeared text field to type the folder name." |
| 60 | else: |
| 61 | return 'Folder name has been entered.' |
| 62 | |
| 63 | def update(self, action_name: str, success: bool = True, element_info: str = '') -> None: |
| 64 | if not success: |
| 65 | return |
| 66 | |
| 67 | if action_name == 'click' and 'New Folder' in element_info: |
| 68 | self.new_folder_clicked = True |
| 69 | self.last_action = 'clicked_new_folder' |
| 70 | elif action_name == 'type' and self.new_folder_clicked: |
| 71 | self.folder_name_entered = True |
| 72 | self.last_action = 'entered_folder_name' |
| 73 | |
| 74 | |
| 75 | async def main(): |