Playwright百度搜索自动化脚本
完整代码from playwright.sync_api import Playwright, sync_playwright, expect def run(playwright: Playwright) - None: # 启动 Chromium 浏览器非无头模式会弹出浏览器窗口 browser playwright.chromium.launch(headlessFalse) # 创建一个新的浏览器上下文相当于一个独立的浏览器会话 context browser.new_context() # 在上下文中创建一个新的标签页Page 对象 page context.new_page() # 访问百度首页 page.goto(https://www.baidu.com/) # 定位百度搜索框通过 role 为 textbox、name 属性匹配并点击 page.get_by_role(roletextbox, name气温骤降引起女子右眼剧痛).click() # 在搜索框中输入关键词“定期利率” page.get_by_role(roletextbox, name气温骤降引起女子右眼剧痛).fill(定期利率) # 定位“百度一下”按钮并点击提交搜索 page.get_by_role(rolebutton, name百度一下).click() # 断言验证搜索结果页面左侧区域包含“定期利率”文本 expect(page.locator(#content_left)).to_contain_text(定期利率) # 关闭浏览器上下文 context.close() # 关闭浏览器实例 browser.close() # 使用同步 Playwright 上下文管理器启动浏览器 with sync_playwright() as playwright: run(playwright)逐行解释导入模块python运行from playwright.sync_api import Playwright, sync_playwright, expect导入 Playwright 同步 API 的核心组件Playwright类型注解用于类型提示。sync_playwright同步模式的 Playwright 入口点。expectPlaywright 自带的断言工具用于验证页面状态。定义主函数runpython运行def run(playwright: Playwright) - None:接收一个Playwright实例作为参数函数无返回值。启动浏览器python运行browser playwright.chromium.launch(headlessFalse)启动 Chromium 浏览器headlessFalse表示以 “有头模式” 运行会弹出浏览器窗口方便调试。创建浏览器上下文python运行context browser.new_context()创建一个独立的浏览器上下文相当于一个 “隔离的浏览器会话”可以独立管理 Cookie、本地存储等数据。创建新页面标签页python运行page context.new_page()在上下文中创建一个新的标签页page对象是 Playwright 中控制页面交互的核心。访问网页python运行page.goto(https://www.baidu.com/)让浏览器跳转到百度首页。定位并操作元素python运行page.get_by_role(roletextbox, name气温骤降引起女子右眼剧痛).click() page.get_by_role(roletextbox, name气温骤降引起女子右眼剧痛).fill(定期利率) page.get_by_role(rolebutton, name百度一下).click()get_by_role()是 Playwright 推荐的定位方式通过元素的 ARIA 角色和名称来定位这里的name实际是百度搜索框的aria-label属性值。.click()模拟点击操作.fill()模拟输入文本。断言验证结果python运行expect(page.locator(#content_left)).to_contain_text(定期利率)使用expect断言验证搜索结果区域#content_left是百度搜索结果的容器包含文本 “定期利率”确认搜索成功。资源清理python运行context.close() browser.close()关闭浏览器上下文和浏览器实例释放资源。启动 Playwright 并执行脚本python运行with sync_playwright() as playwright: run(playwright)使用with上下文管理器启动 Playwright自动管理资源生命周期并调用run函数执行自动化流程。脚本的核心作用这是一个典型的Playwright 同步模式自动化测试脚本完整实现了打开浏览器 → 访问百度定位搜索框 → 输入关键词 → 提交搜索验证搜索结果是否符合预期关闭浏览器它的核心价值在于用自动化代码替代人工操作适合用于 UI 自动化测试、爬虫、页面操作自动化等场景。补充说明你可能会遇到的问题name气温骤降引起女子右眼剧痛是什么这是百度搜索框的aria-label属性值可能会随百度更新变化如果脚本运行失败大概率是这个定位器失效了建议改用更稳定的定位方式比如page.locator(#kw)通过 ID 定位。headlessFalse的作用开发调试阶段建议设为False方便观察浏览器行为部署到服务器时可以改为True无头模式后台运行不显示窗口。为什么要用with sync_playwright()它会自动初始化和清理 Playwright 资源避免内存泄漏是官方推荐的写法。