dt_automate/method/hw_fac2000.go
2025-02-27 18:37:03 +08:00

118 lines
3.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package method
import (
"dt_automate/tool"
"log"
"github.com/playwright-community/playwright-go"
)
func HW_FAC1() {
// 启动 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.19/", playwright.PageGotoOptions{WaitUntil: playwright.WaitUntilStateDomcontentloaded})
if err != nil {
log.Fatalf("could not go to the page: %v", err)
}
page.WaitForTimeout(2000)
//输入
if err := page.Locator(`.cover-input input[placeholder="账号"]`).Fill("admin"); err != nil {
log.Fatalf("could not fill input: %v", err)
}
if err := page.Locator(`.cover-pwd input[placeholder="密码"]`).Fill("BWySN~QjrlwFsA)@#j"); err != nil {
log.Fatalf("could not fill input: %v", err)
}
page.WaitForTimeout(500)
//登录
if err := page.Locator(".login-btn").Click(); err != nil {
log.Fatalf("could not click button: %v", err)
}
page.WaitForTimeout(1000)
page.Locator(`.nav-two a[title="日志中心"]`).Click()
page.WaitForTimeout(2000)
// 执行 JavaScript 代码
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.WaitForTimeout(500)
// page.Screenshot(playwright.PageScreenshotOptions{
// Path: playwright.String("img/afc2000_1.png"),
// })
tool.Jietu("img/afc2000_1.png")
page.Locator(`#OneLevel0_TwoLevel3 a[href="#"]`).Click()
page.WaitForTimeout(2000)
// 定位 iframe
// 等待 iframe 加载完成
// _, err = page.WaitForSelector(".panel-body.panel-body-noheader.panel-body-noborder iframe")
// if err != nil {
// log.Fatalf("等待 iframe 加载失败: %v", err)
// }
// page.Locator(`#peak_value .content input[value="查询"]`).Click()
// 定位 iframe 并操作内部元素
iframeLocator, _ := page.QuerySelectorAll("iframe")
iframe, _ := iframeLocator[1].ContentFrame()
iframe.Locator(`#peak_value input[value="查询"]`).Click()
page.WaitForTimeout(500)
iframe.Locator(`#peak_value input[value="2"]`).Click()
page.WaitForTimeout(1000)
// page.Screenshot(playwright.PageScreenshotOptions{
// Path: playwright.String("img/afc2000_2.png"),
// FullPage: playwright.Bool(true),
// })
tool.Jietu("img/afc2000_2.png")
// 获取页面标题
title, err := page.Title()
if err != nil {
log.Fatalf("could not get title: %v", err)
}
log.Printf("Page title is: %s\n", title)
page.WaitForTimeout(5000)
// StartBlocker()
}