32 lines
1.5 KiB
C#
32 lines
1.5 KiB
C#
using BadmintonBooker;
|
|
using Microsoft.Playwright;
|
|
|
|
using var playwright = await Playwright.CreateAsync();
|
|
var context = await BrowserManager.GetContextAsync(playwright);
|
|
var page = context.Pages.Count > 0 ? context.Pages[0] : await context.NewPageAsync();
|
|
await page.GotoAsync("https://my.hdc.mv/");
|
|
await page.GetByRole(AriaRole.Link, new() { Name = "Login" }).ClickAsync();
|
|
await page.GetByRole(AriaRole.Button, new() { Name = "eFaas" }).ClickAsync();
|
|
await page.GetByRole(AriaRole.Tab, new() { Name = "Password Login" }).ClickAsync(new () { Delay = 1000 });
|
|
await page.GetByPlaceholder("Username").FillAsync("A384347");
|
|
var password = File.ReadAllText("password.txt");
|
|
await page.GetByPlaceholder("Password").FillAsync(password);
|
|
await page.GetByRole(AriaRole.Button, new() { Name = "LOGIN" }).ClickAsync();
|
|
await page.GetByRole(AriaRole.Button, new() { Name = "CONTINUE" }).ClickAsync(new () { Delay = 1000 });
|
|
await Task.Delay(5000);
|
|
|
|
var egovOtp = await OTPExtractor.GetEgovOTP(context, page);
|
|
if (egovOtp != null)
|
|
Console.WriteLine($"Extracted eGov OTP: {egovOtp}");
|
|
else
|
|
return;
|
|
|
|
await page.GetByPlaceholder("OTP").FillAsync(egovOtp);
|
|
await page.GetByRole(AriaRole.Button, new() { Name = "CONTINUE" }).ClickAsync();
|
|
await page.GetByText("Make a booking").ClickAsync();
|
|
await page.GetByText("Fahiveni").ClickAsync();
|
|
await page.GetByText("Sports and Leisure").ClickAsync();
|
|
await page.GetByText(" Fahiveni Community Center ").First.ClickAsync(new () { Delay = 1500 });
|
|
await page.GetByText("Badminton Court 1").ClickAsync(new () { Delay = 1500 });
|
|
|
|
Console.ReadLine(); |