当前位置: 首页 > news >正文

Playwright C# 自动登录并上传 Excel 文件 的可运行示例

目录

1. 初始化项目(如果之前没做)

2. Program.cs 示例

3. 你需要改的地方

4. 运行


Playwright C# 自动登录并上传 Excel 文件 的可运行示例:
你只要把网址和选择器改成社保局系统的,就能直接用。


1. 初始化项目(如果之前没做)

dotnet new console -n AutoUpload
cd AutoUpload
dotnet add package Microsoft.Playwright
dotnet tool install --global Microsoft.Playwright.CLI
playwright install

2. Program.cs 示例

using Microsoft.Playwright;
using System;
using System.Threading.Tasks;class Program
{public static async Task Main(){string loginUrl = "https://example.com/login"; // 这里改成社保局登录页面string username = "your_username";             // 这里改成你的账号string password = "your_password";             // 这里改成你的密码string excelPath = @"C:\报表\社保.xls";          // 上传的 Excel 文件路径using var playwright = await Playwright.CreateAsync();var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions{Headless = false // true 表示无界面运行});var page = await browser.NewPageAsync();try{// 打开登录页面await page.GotoAsync(loginUrl);// 填写账号密码(修改选择器为社保局网站实际的 ID 或 name)await page.FillAsync("#username", username);await page.FillAsync("#password", password);// 点击登录按钮await page.ClickAsync("#loginBtn");// 等待上传页面加载(这里需要换成社保局上传页面的 URL 或触发方式)await page.WaitForURLAsync("**/upload**"); // 选择文件上传await page.SetInputFilesAsync("input[type='file']", excelPath);// 点击提交按钮await page.ClickAsync("#submitBtn");// 等待上传完成提示await page.WaitForSelectorAsync(".upload-success", new PageWaitForSelectorOptions { Timeout = 10000 });Console.WriteLine("✅ Excel 上传成功!");}catch (Exception ex){Console.WriteLine($"❌ 运行出错: {ex.Message}");}finally{await browser.CloseAsync();}}
}

3. 你需要改的地方

  1. loginUrl 改成社保局的登录地址
  2. 选择器#username#password#loginBtninput[type='file']#submitBtn.upload-success)改成网页上实际的元素
    • 可以用浏览器 右键 → 检查 来获取元素的 id 或 name
  1. excelPath 改成本地 Excel 文件路径
  2. 如果上传页面和登录页面不是同一个,要加一步 GotoAsync() 进入上传页面

4. 运行

dotnet run

浏览器会自动打开,登录,上传 Excel,等待上传完成。


http://www.lryc.cn/news/615321.html

相关文章:

  • Irix HDR Pro:专业级 HDR 图像处理软件
  • Docker部署whisper转写模型
  • Java中Lambda表达式的常见用法和解析:从入门到实战
  • C/C++基础详解(二)
  • 【51单片机4按键启动停止向上向下流水灯】2022-10-26
  • 本文章分享一个本地录音和实时传输录音给app的功能(杰理)
  • 【c++】探秘Loop机制:C++中优雅的双向数据交互模式
  • Ubuntu下安全彻底删除后端服务完整指南
  • 网络原理-初识
  • PNPM总结
  • QT第一讲- Qt初探
  • Microsoft Office Visio(流程图)学习笔记
  • 使用SymPy lambdify处理齐次矩阵的高效向量化计算
  • 动手学深度学习(pytorch版):第二章节——预备知识(1)——数据操作
  • 2025华数杯数学建模C题:可调控生物节律LED光源全解析
  • 理解协议最大传输单元(MTU)和TCP 最大报文段长度(MSS)
  • 自动生成视频的AI大模型高效创作指南
  • 掌握数据可视化:全局配置项详解
  • Nginx 反向代理与负载均衡架构
  • Redhat Linux 9.6 配置本地 yum 源
  • qt文件操作与qss基础
  • 2025彩虹易支付官方正版无删减完整版源码
  • B.10.01.5-电商系统的设计模式应用实战
  • 【Canvas与旗帜】圆角蓝底大黄白星十一红白带旗
  • Node.js特训专栏-实战进阶:22. Docker容器化部署
  • 北京JAVA基础面试30天打卡05
  • STM32的中断系统
  • 05.【数据结构-C语言】栈(先进后出,栈的实现:进栈、出栈、获取栈顶元素,栈实现代码,括号匹配问题)
  • 【排序算法】③直接选择排序
  • 心灵笔记:思考三部曲