package method import ( "bufio" "fmt" "log" "os" "github.com/playwright-community/playwright-go" ) func ZWW_DTCLOUD() { // 启动 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://ops.zww.dtcloud.com/login", playwright.PageGotoOptions{WaitUntil: playwright.WaitUntilStateDomcontentloaded}) if err != nil { log.Fatalf("could not go to the page: %v", err) } // page.WaitForTimeout(4000) //输入用户名 page.Locator(`.el-input__inner`).Nth(0).Fill("opsadmin") //输入密码 page.Locator(`.el-input__inner`).Nth(1).Fill(`DTXCY@2024#`) reader := bufio.NewReader(os.Stdin) fmt.Print("请输入验证码:") input, _ := reader.ReadString('\n') //输入验证码 page.Locator(`.el-input__inner`).Nth(2).Fill(input) log.Println("当前验证码为:", input) page.WaitForTimeout(2000) //登录 if err := page.Locator(".el-button.login-form-item.login-btn.el-button--primary").Click(); err != nil { log.Fatalf("could not click button: %v", err) } page.WaitForTimeout(7000) //运维中心主页 page.Screenshot(playwright.PageScreenshotOptions{ Path: playwright.String("img/zww_dtcloud_man.png"), FullPage: playwright.Bool(false), }) // tool.Jietu("img/hw_dtcloud_man.png") page.Goto("https://ops.zww.dtcloud.com/console/om/capacity/overview?regionId=-1", playwright.PageGotoOptions{WaitUntil: playwright.WaitUntilStateDomcontentloaded}) //跳转到运维中心概览 page.WaitForTimeout(6000) page.Screenshot(playwright.PageScreenshotOptions{ Path: playwright.String("img/zww_dtcloud_01.png"), FullPage: playwright.Bool(false), }) // tool.Jietu("img/hw_dtcloud_01.png") page.Goto("https://ops.zww.dtcloud.com/console/om/capacity/resource?regionId=-1", playwright.PageGotoOptions{WaitUntil: playwright.WaitUntilStateDomcontentloaded}) //运维-资源容量 page.WaitForTimeout(6000) page.Screenshot(playwright.PageScreenshotOptions{ Path: playwright.String("img/zww_dtcloud_02.png"), FullPage: playwright.Bool(false), }) // tool.Jietu("img/hw_dtcloud_02.png") page.Goto("https://ops.zww.dtcloud.com/region/dtcloud2/console/om/monitor/overview", playwright.PageGotoOptions{WaitUntil: playwright.WaitUntilStateDomcontentloaded}) //监控-概览 page.WaitForTimeout(6000) page.Screenshot(playwright.PageScreenshotOptions{ Path: playwright.String("img/zww_dtcloud_03.png"), FullPage: playwright.Bool(false), }) // tool.Jietu("img/hw_dtcloud_03.png") page.Goto("https://ops.zww.dtcloud.com/region/dtcloud2/console/om/monitor/resource", playwright.PageGotoOptions{WaitUntil: playwright.WaitUntilStateDomcontentloaded}) //监控-资源监控-物理服务器 page.WaitForTimeout(4000) page.Locator(`.arco-tree.arco-tree-show-line`).Locator(`div`).Nth(8).Locator(`span`).Nth(2).Locator(`span`).Nth(0).Click() page.Locator(`div[data-test-id="PhysicalServer"]`).Click() page.WaitForTimeout(2000) page.Screenshot(playwright.PageScreenshotOptions{ Path: playwright.String("img/zww_dtcloud_04.png"), FullPage: playwright.Bool(false), }) // tool.Jietu("img/hw_dtcloud_04.png") page.Goto("https://ops.zww.dtcloud.com/region/dtcloud2/console/om/alert/view", playwright.PageGotoOptions{WaitUntil: playwright.WaitUntilStateDomcontentloaded}) //监控-告警-告警查看 page.WaitForTimeout(6000) page.Locator(`.arco-space-item`).Nth(0).Locator(`div`).Nth(1).Locator(`button`).Click() page.WaitForTimeout(6000) page.Screenshot(playwright.PageScreenshotOptions{ Path: playwright.String("img/zww_dtcloud_05.png"), FullPage: playwright.Bool(false), }) // tool.Jietu("img/hw_dtcloud_05.png") page.Goto("https://ops.zww.dtcloud.com/region/dtcloud2/console/om/alert/history", playwright.PageGotoOptions{WaitUntil: playwright.WaitUntilStateDomcontentloaded}) //监控-告警历史 page.WaitForTimeout(6000) page.Locator(`.arco-btn.arco-btn-outline.arco-btn-size-default.arco-btn-shape-square`).Nth(0).Click() page.WaitForTimeout(1000) page.Locator(`.arco-input-tag-input.arco-input-tag-input-size-default.arco-input-tag-input-autowidth`).Click() page.Locator(`.arco-select-option-wrapper`).Nth(0).Locator(`.arco-checkbox-mask`).Click() page.Locator(`.arco-btn.arco-btn-primary.arco-btn-size-mini.arco-btn-shape-square`).Click() page.WaitForTimeout(1000) page.Screenshot(playwright.PageScreenshotOptions{ Path: playwright.String("img/zww_dtcloud_06.png"), FullPage: playwright.Bool(false), }) // tool.Jietu("img/hw_dtcloud_06.png") page.Goto("https://ops.zww.dtcloud.com/region/dtcloud2/console/om/health-inspection/outputs?page=1&size=10&order=createTime%3Adesc&searchResult=%7B%7D", playwright.PageGotoOptions{WaitUntil: playwright.WaitUntilStateDomcontentloaded}) //运维-监控巡检-巡检结果 page.WaitForTimeout(6000) page.Screenshot(playwright.PageScreenshotOptions{ Path: playwright.String("img/zww_dtcloud_07.png"), FullPage: playwright.Bool(false), }) // tool.Jietu("img/hw_dtcloud_07.png") page.Goto("https://ops.zww.dtcloud.com/console/om/capacity/service?regionId=-1", playwright.PageGotoOptions{WaitUntil: playwright.WaitUntilStateDomcontentloaded}) //运维-容量-云服务容量 page.WaitForTimeout(6000) page.Screenshot(playwright.PageScreenshotOptions{ Path: playwright.String("img/zww_dtcloud_08.png"), FullPage: playwright.Bool(false), }) // 获取页面标题 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) }