package method import ( "bufio" "dt_automate/tool" "fmt" "log" "os" "github.com/playwright-community/playwright-go" ) func HW_TSGZ() { // 启动 Playwright pw, err := playwright.Run() if err != nil { log.Fatalf("could not start Playwright: %v", err) } defer pw.Stop() // 启动浏览器(Chromium) browser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{ Headless: playwright.Bool(false), // 设置为 false 以显示浏览器界面 Args: []string{ "--ignore-certificate-errors", // 忽略证书错误[^28^][^29^] }, }) if err != nil { log.Fatalf("could not launch browser: %v", err) } defer browser.Close() // 创建一个新页面 page, err := browser.NewPage() if err != nil { log.Fatalf("could not create page: %v", err) } // 设置浏览器窗口大小 err = page.SetViewportSize(1920, 1080) // 宽度为 1200px,高度为 800px if err != nil { log.Fatalf("无法设置浏览器窗口大小: %v", err) } // 导航到指定网址 _, err = page.Goto("https://11.2.65.21/", playwright.PageGotoOptions{WaitUntil: playwright.WaitUntilStateDomcontentloaded}) if err != nil { log.Fatalf("could not go to the page: %v", err) } page.WaitForTimeout(2000) page.Locator(`.verification-item .el-image`).Screenshot(playwright.LocatorScreenshotOptions{ Path: playwright.String("img/capt.png"), }) a := page.Locator(`.el-input__inner`) // result := wtch_ocr.OcrDefault("img/capt.png") // if len(result.OcrResponse[0].Text) == 4 { // log.Println("读取验证码:", result.OcrResponse[0].Text) // a.Nth(2).Fill(result.OcrResponse[0].Text) // } else { // page.WaitForTimeout(500) // page.Locator(".verification-item .el-image .el-image__inner").Click() // } // Screenshot(playwright.PageScreenshotOptions{}) // (playwright.PageScreenshotOptions{ // Path: playwright.String("img/capg.png"), // FullPage: playwright.Bool(true), // }) //输入 a.Nth(0).Fill(tool.KeyStr("38u5W6/UI21Tq2v/7jkwIqRIFTP7wbYL0rZNgCF7/l3EX6A0yMKYEzN5IyWpsKHSb8SX3ZPIZu/5wqe3qiKVT4O0PovqyeP9u7uS+bK0UdXEi6xji1p8JioSndZppoYBbXb1d6+0lJ0Jjd0K1COmglP2+vE+ENi8pkxOPxDr6X88Arpev1SNBz2a4FV7TdDkfvsw8st2UO+WzJRsmUVRFgkY7v1ItZaqSfIo0tnte0MA68JEuH6eho2q/5vDDlqly925Er9IBhqJ+OGFkB0J7ZmZ7bUX1UJfezqFJaWEa/0iKw6lx+6itG96TUimviKjVs3D9bCqNTwodberriMkcw==")) page.WaitForTimeout(500) a.Nth(1).Fill(tool.KeyStr("nULccm0ElOVYuKvSqMmBJ6pAOFnIn6r/gIzW5MRcef63NWlZVpn4uFOrNFh2vVhSRQRK7elPLFu5XJkH16UZ9BmLnhD62yVJK+giClXX3Z4qEeQjB+sNf8C44JIl0n7RQ9K+vy0BAxJspMmH7R8d5Ixf2mmRdLzuFiO6ZtYoh5XNScrzz9OTl8fWi9afpzdKS4lL5b6yv5XiuG8Bx3mUJD+KDx0jZl86DlVidBEs9Qf4W3iV5UUvrKYnGsSIeV3BBCSuqXw3VdwLP5FMdWyiZnlLFjtxX1n9+5KpvOvkC0/zUccG/nv0K0VmgvGaAylJnbLzDEDiPgJCA+V88qeQXw==")) reader := bufio.NewReader(os.Stdin) fmt.Print("请输入验证码:") input, _ := reader.ReadString('\n') a.Nth(2).Fill(input) page.WaitForTimeout(500) //点击同意 if err := page.Locator(`.el-checkbox__inner`).Click(); err != nil { log.Println(err) } //登录 page.WaitForTimeout(1000) if err := page.Locator(`.el-button.el-button--primary.el-button--large.login-button`).Click(); err != nil { log.Println(err) } page.WaitForTimeout(500) _, err = page.Goto("https://11.2.65.21/#/threatCenter/asset") page.WaitForTimeout(1000) page.Evaluate(` const now = new Date(); const year = now.getFullYear(); const month = (now.getMonth() + 1).toString().padStart(2, '0'); const day = now.getDate().toString().padStart(2, '0'); const hours = now.getHours().toString().padStart(2, '0'); const minutes = now.getMinutes().toString().padStart(2, '0'); const seconds = now.getSeconds().toString().padStart(2, '0'); const timestamp = year+"-"+month+"-"+day +" "+ hours+":"+minutes+":"+seconds; const div = document.createElement('div'); div.style.position = 'fixed'; div.style.bottom = '10px'; div.style.right = '10px'; div.style.color = 'white'; div.style.backgroundColor = 'black'; div.style.padding = '5px'; div.style.borderRadius = '5px'; div.textContent = timestamp; document.body.appendChild(div); `, nil) page.Locator(`.el-range-input`).Nth(0).Click() page.WaitForTimeout(500) page.Locator(`.el-picker-panel__shortcut`).Nth(0).Click() page.WaitForTimeout(300) page.Locator(`.display-inline-flex.align-items-center.justify-content-end.advanced-search-wrapper .el-button.el-button--primary`).Click() page.WaitForTimeout(1000) tool.Jietu("img/hw_tsgz.png") page.WaitForTimeout(2000) // 获取页面标题 title, err := page.Title() if err != nil { log.Fatalf("could not get title: %v", err) } log.Printf("Page title is: %s\n", title) // StartBlocker() page.WaitForTimeout(5000) }