(self, project_name)
| 168 | self.page.set_viewport_size({"width": 1280, "height": 1080}) |
| 169 | |
| 170 | def screenshot(self, project_name): |
| 171 | screenshots_save_path = Config().get_screenshots_dir() |
| 172 | |
| 173 | page_metadata = self.page.evaluate("() => { return { url: document.location.href, title: document.title } }") |
| 174 | page_url = page_metadata['url'] |
| 175 | random_filename = os.urandom(20).hex() |
| 176 | filename_to_save = f"{random_filename}.png" |
| 177 | path_to_save = os.path.join(screenshots_save_path, filename_to_save) |
| 178 | |
| 179 | self.page.emulate_media(media="screen") |
| 180 | self.page.screenshot(path=path_to_save) |
| 181 | |
| 182 | new_state = AgentState().new_state() |
| 183 | new_state["internal_monologue"] = "Browsing the web right now..." |
| 184 | new_state["browser_session"]["url"] = page_url |
| 185 | new_state["browser_session"]["screenshot"] = path_to_save |
| 186 | AgentState().add_to_current_state(project_name, new_state) |
| 187 | |
| 188 | return path_to_save |
| 189 | |
| 190 | def go_to_page(self, url): |
| 191 | self.page.goto(url=url if "://" in url else "http://" + url) |
no test coverage detected