Kaynağa Gözat

自动填写脚本

zhensolid 8 ay önce
ebeveyn
işleme
9fb2b7c404
1 değiştirilmiş dosya ile 56 ekleme ve 0 silme
  1. 56 0
      autowrite.py

+ 56 - 0
autowrite.py

@@ -0,0 +1,56 @@
+import asyncio
+from playwright.async_api import async_playwright
+
+# 执行自动化浏览器操作的协程函数
+
+
+async def run(playwright):
+    # 启动 Chromium 浏览器(设置为非 headless 模式,方便观察)
+    browser = await playwright.chromium.launch(headless=False)
+    context = await browser.new_context()  # 创建新的浏览器上下文
+    page = await context.new_page()        # 打开一个新的标签页
+
+    # 访问百度首页
+    await page.goto('https://www.baidu.com')
+
+    # 等待搜索框加载完成并输入关键词
+    search_input_selector = 'input#kw'  # 百度搜索输入框的 ID 是 kw
+    await page.wait_for_selector(search_input_selector)  # 等待元素加载
+    await page.fill(search_input_selector, 'Playwright 自动化')  # 填入搜索关键词
+
+    # 等待搜索按钮加载并点击
+    search_button_selector = 'input#su'  # 百度搜索按钮的 ID 是 su
+    # 确保按钮可见
+    await page.wait_for_selector(search_button_selector, state='visible')
+    await page.click(search_button_selector)  # 点击搜索
+
+    print("已在百度搜索 'Playwright 自动化'")
+
+    # 保持页面停留 5 秒以便查看结果
+    await asyncio.sleep(5)
+
+    # 关闭浏览器
+    await browser.close()
+
+# 主函数,用于启动 playwright 并调用 run 函数
+
+
+async def main():
+    async with async_playwright() as playwright:
+        await run(playwright)
+
+# 判断当前环境是否已经有事件循环在运行
+if __name__ == "__main__":
+    try:
+        # 尝试获取正在运行的事件循环(某些 IDE/Jupyter 会预先启动)
+        loop = asyncio.get_running_loop()
+    except RuntimeError:
+        loop = None
+
+    # 如果事件循环存在且正在运行(比如在 Jupyter Notebook 中)
+    if loop and loop.is_running():
+        print("检测到事件循环正在运行,使用 create_task 启动协程")
+        asyncio.create_task(main())  # 使用 create_task 异步运行
+    else:
+        # 否则,正常使用 asyncio.run 启动主协程
+        asyncio.run(main())