From 05c108d3f6fe0be61dc5f4a2256b62318bd5d36d Mon Sep 17 00:00:00 2001 From: keacwu Date: Fri, 21 Nov 2025 15:19:17 +0800 Subject: [PATCH] Improve input handling in Grok.py Refactor input selection and submission logic for better error handling and clarity. --- g4f/Provider/needs_auth/Grok.py | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/g4f/Provider/needs_auth/Grok.py b/g4f/Provider/needs_auth/Grok.py index eed32914..a8847fea 100644 --- a/g4f/Provider/needs_auth/Grok.py +++ b/g4f/Provider/needs_auth/Grok.py @@ -92,12 +92,26 @@ class Grok(AsyncAuthedProvider, ProviderModelMixin): while True: if has_headers: break - textarea = await page.select("textarea", 180) - await textarea.send_keys("Hello") - await asyncio.sleep(1) - button = await page.select("button[type='submit']") - if button: - await button.click() + input_element = None + try: + input_element = await page.select("div.ProseMirror", 2) + except Exception: + pass + if not input_element: + try: + input_element = await page.select("textarea", 180) + except Exception: + pass + if input_element: + try: + await input_element.click() + await input_element.send_keys("Hello") + await asyncio.sleep(0.5) + submit_btn = await page.select("button[type='submit']", 2) + if submit_btn: + await submit_btn.click() + except Exception: + pass await asyncio.sleep(1) auth_result.cookies = {} for c in await page.send(nodriver.cdp.network.get_cookies([cls.url])):