目录
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. 你需要改的地方
loginUrl
改成社保局的登录地址- 选择器(
#username
、#password
、#loginBtn
、input[type='file']
、#submitBtn
、.upload-success
)改成网页上实际的元素
-
- 可以用浏览器 右键 → 检查 来获取元素的
id
或name
- 可以用浏览器 右键 → 检查 来获取元素的
excelPath
改成本地 Excel 文件路径- 如果上传页面和登录页面不是同一个,要加一步
GotoAsync()
进入上传页面
4. 运行
dotnet run
浏览器会自动打开,登录,上传 Excel,等待上传完成。