diff --git a/internal/pkg/helper/script/generator.go b/internal/pkg/helper/script/generator.go index 35cc60844e0ffb65c1c427f771738f151f318f54..85be67fd6c2dd0a77490a61adc57aee845009252 100644 --- a/internal/pkg/helper/script/generator.go +++ b/internal/pkg/helper/script/generator.go @@ -108,6 +108,7 @@ func GenEmptyScript(name, lang, pth string, productId int) { info := make([]string, 0) info = append(info, fmt.Sprintf("title=%s", name)) + info = append(info, fmt.Sprintf("timeout=%d", 0)) info = append(info, fmt.Sprintf("cid=%d", 0)) info = append(info, fmt.Sprintf("pid=%d", productId)) diff --git a/test/ui_interpreter_test.go b/test/ui_interpreter_test.go index 6cccfa5f351fdfd11f5eb28f4795adc9c59273c9..49e2e45c6db4d2c67e2323f933623e163ba5621a 100644 --- a/test/ui_interpreter_test.go +++ b/test/ui_interpreter_test.go @@ -13,7 +13,6 @@ func CreateInterpreter(t *testing.T) { if err != nil { t.Error(err) t.FailNow() - } headless := false var slowMo float64 = 100 @@ -23,39 +22,32 @@ func CreateInterpreter(t *testing.T) { if err != nil { t.Errorf("Fail to launch the web interpreterBrowser: %v", err) t.FailNow() - } page, err := interpreterBrowser.NewPage() if err != nil { t.Errorf("Create the new page fail: %v", err) t.FailNow() - } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() - } err = page.Click("#navbar>>[title=\"设置\"]") if err != nil { t.Errorf("The Click interpreter nav fail: %v", err) t.FailNow() - } err = page.Click("text=新建运行环境") if err != nil { t.Errorf("The Click create interpreter fail: %v", err) t.FailNow() - } Locator, err := page.Locator("#interpreterFormModal select") if err != nil { t.Errorf("Find create interpreter input fail: %v", err) t.FailNow() - } langSelect, err := Locator.Nth(0) if err != nil { @@ -72,20 +64,17 @@ func CreateInterpreter(t *testing.T) { if err != nil { t.Errorf("Find address input fail: %v", err) t.FailNow() - } _, err = pathSelect.SelectOption(playwright.SelectOptionValues{Indexes: &[]int{1}}) if err != nil { t.Errorf("Fil address input fail: %v", err) t.FailNow() - } err = page.Click("#interpreterFormModal>>text=确定") if err != nil { t.Errorf("The Click submit form fail: %v", err) t.FailNow() - } Locator, err = page.Locator("#settingModal .z-tbody-td", playwright.PageLocatorOptions{HasText: "Python"}) c, err := Locator.Count() @@ -99,7 +88,6 @@ func EditInterpreter(t *testing.T) { if err != nil { t.Error(err) t.FailNow() - } headless := false var slowMo float64 = 100 @@ -111,51 +99,42 @@ func EditInterpreter(t *testing.T) { if err != nil { t.Errorf("Fail to launch the web interpreterBrowser: %v", err) t.FailNow() - } page, err := interpreterBrowser.NewPage() if err != nil { t.Errorf("Create the new page fail: %v", err) t.FailNow() - } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() - } err = page.Click("#navbar>>[title=\"设置\"]") if err != nil { t.Errorf("The Click interpreter nav fail: %v", err) t.FailNow() - } Locator, err := page.Locator("#settingModal .z-tbody-tr", playwright.PageLocatorOptions{HasText: "Python"}) if err != nil { t.Errorf("Find python tr fail: %v", err) t.FailNow() - } Locator, err = Locator.Locator("text=编辑") if err != nil { t.Errorf("Find python edit btn fail: %v", err) t.FailNow() - } err = Locator.Click() if err != nil { t.Errorf("The Click update site fail: %v", err) t.FailNow() - } Locator, err = page.Locator("#interpreterFormModal select") if err != nil { t.Errorf("Find create interpreter input fail: %v", err) t.FailNow() - } langSelect, err := Locator.Nth(0) if err != nil { @@ -172,20 +151,17 @@ func EditInterpreter(t *testing.T) { if err != nil { t.Errorf("Find address input fail: %v", err) t.FailNow() - } _, err = pathSelect.SelectOption(playwright.SelectOptionValues{Indexes: &[]int{1}}) if err != nil { t.Errorf("Fil address input fail: %v", err) t.FailNow() - } err = page.Click("#interpreterFormModal>>text=确定") if err != nil { t.Errorf("The Click submit form fail: %v", err) t.FailNow() - } Locator, err = page.Locator("#settingModal .z-tbody-td", playwright.PageLocatorOptions{HasText: "Python"}) c, err := Locator.Count() @@ -199,7 +175,6 @@ func DeleteInterpreter(t *testing.T) { if err != nil { t.Error(err) t.FailNow() - } headless := false var slowMo float64 = 100 @@ -211,52 +186,43 @@ func DeleteInterpreter(t *testing.T) { if err != nil { t.Errorf("Fail to launch the web interpreterBrowser: %v", err) t.FailNow() - } page, err := interpreterBrowser.NewPage() if err != nil { t.Errorf("Create the new page fail: %v", err) t.FailNow() - } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() - } err = page.Click("#navbar>>[title=\"设置\"]") if err != nil { t.Errorf("The Click interpreter nav fail: %v", err) t.FailNow() - } Locator, err := page.Locator("#settingModal .z-tbody-tr", playwright.PageLocatorOptions{HasText: "Python"}) if err != nil { t.Errorf("Find python tr fail: %v", err) t.FailNow() - } Locator, err = Locator.Locator("text=删除") if err != nil { t.Errorf("Find python edit btn fail: %v", err) t.FailNow() - } err = Locator.Click() if err != nil { t.Errorf("The Click update site fail: %v", err) t.FailNow() - } err = page.Click(":nth-match(.modal-action > button, 1)") if err != nil { t.Errorf("The Click submit form fail: %v", err) t.FailNow() - } page.WaitForTimeout(1000) Locator, err = page.Locator("#settingModal .z-tbody-tr", playwright.PageLocatorOptions{HasText: "Python"}) @@ -264,18 +230,15 @@ func DeleteInterpreter(t *testing.T) { if err != nil || c > 0 { t.Errorf("Delete interpreter fail: %v", err) t.FailNow() - } if err = interpreterBrowser.Close(); err != nil { t.Errorf("The interpreterBrowser cannot be closed: %v", err) t.FailNow() - } if err = pw.Stop(); err != nil { t.Errorf("The playwright cannot be stopped: %v", err) t.FailNow() - } } diff --git a/test/ui_result_test.go b/test/ui_result_test.go new file mode 100644 index 0000000000000000000000000000000000000000..a3823404d0db71c6b9f9c5fd997153a677094b8b --- /dev/null +++ b/test/ui_result_test.go @@ -0,0 +1,210 @@ +package main + +import ( + "testing" + + playwright "github.com/playwright-community/playwright-go" +) + +var resultBrowser playwright.Browser + +func SubmitResult(t *testing.T) { + pw, err := playwright.Run() + if err != nil { + t.Error(err) + t.FailNow() + } + headless := false + var slowMo float64 = 100 + workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo}) + if err != nil { + t.Errorf("Fail to launch the web workspaceBrowser: %v", err) + t.FailNow() + } + page, err := workspaceBrowser.NewPage() + if err != nil { + t.Errorf("Create the new page fail: %v", err) + t.FailNow() + } + if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { + t.Errorf("The specific URL is missing: %v", err) + t.FailNow() + } + _, err = page.WaitForSelector(".tree-node") + if err != nil { + t.Errorf("Wait tree-node fail: %v", err) + t.FailNow() + } + + Locator, err := page.Locator("#siteMenuToggle") + if err != nil { + t.Errorf("The siteMenuToggle is missing: %v", err) + t.FailNow() + } + err = Locator.Click() + if err != nil { + t.Errorf("The Click is fail: %v", err) + t.FailNow() + } + _, err = page.WaitForSelector("#navbar .list-item") + if err != nil { + t.Errorf("Wait for site list nav fail: %v", err) + t.FailNow() + } + err = page.Click(".list-item-title>>text=单元测试站点") + if err != nil { + t.Errorf("The Click site nav fail: %v", err) + t.FailNow() + } + _, err = page.WaitForSelector(".tree-node") + if err != nil { + t.Errorf("Wait tree-node fail: %v", err) + t.FailNow() + } + err = page.Click("#rightPane .result-list-item .list-item-title>>nth=0") + if err != nil { + t.Errorf("Click first result fail: %v", err) + } + err = page.Click(".result-action .btn:has-text('提交结果到禅道')") + if err != nil { + t.Errorf("Click re-exec failed case btn fail: %v", err) + } + _, err = page.WaitForSelector("#syncToZentaoModal") + if err != nil { + t.Errorf("Wait syncToZentaoModal fail: %v", err) + t.FailNow() + } + titleInput, err := page.Locator("#syncToZentaoModal>>.form-item:has-text('或输入新任务标题')>>input") + if err != nil { + t.Errorf("Find title input fail: %v", err) + t.FailNow() + } + err = titleInput.Fill("单元测试任务") + if err != nil { + t.Errorf("Fil title input fail: %v", err) + t.FailNow() + } + err = page.Click("#syncToZentaoModal>>text=确定") + if err != nil { + t.Errorf("The Click submit form fail: %v", err) + t.FailNow() + } + _, err = page.WaitForSelector("#syncToZentaoModal", playwright.PageWaitForSelectorOptions{State: playwright.WaitForSelectorStateHidden}) + if err != nil { + t.Errorf("Wait syncToZentaoModal hide fail: %v", err) + t.FailNow() + } + Locator, err = page.Locator(".toast-notification-container", playwright.PageLocatorOptions{HasText: "提交成功"}) + c, err := Locator.Count() + if err != nil || c == 0 { + t.Errorf("Submit result to zentao fail: %v", err) + t.FailNow() + } + if err = workspaceBrowser.Close(); err != nil { + t.Errorf("The workspaceBrowser cannot be closed: %v", err) + t.FailNow() + } + if err = pw.Stop(); err != nil { + t.Errorf("The playwright cannot be stopped: %v", err) + t.FailNow() + } +} + +func SubmitBug(t *testing.T) { + pw, err := playwright.Run() + if err != nil { + t.Error(err) + t.FailNow() + } + headless := false + var slowMo float64 = 100 + workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo}) + if err != nil { + t.Errorf("Fail to launch the web workspaceBrowser: %v", err) + t.FailNow() + } + page, err := workspaceBrowser.NewPage() + if err != nil { + t.Errorf("Create the new page fail: %v", err) + t.FailNow() + } + if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { + t.Errorf("The specific URL is missing: %v", err) + t.FailNow() + } + _, err = page.WaitForSelector(".tree-node") + if err != nil { + t.Errorf("Wait tree-node fail: %v", err) + t.FailNow() + } + + Locator, err := page.Locator("#siteMenuToggle") + if err != nil { + t.Errorf("The siteMenuToggle is missing: %v", err) + t.FailNow() + } + err = Locator.Click() + if err != nil { + t.Errorf("The Click is fail: %v", err) + t.FailNow() + } + _, err = page.WaitForSelector("#navbar .list-item") + if err != nil { + t.Errorf("Wait for site list nav fail: %v", err) + t.FailNow() + } + err = page.Click(".list-item-title>>text=单元测试站点") + if err != nil { + t.Errorf("The Click site nav fail: %v", err) + t.FailNow() + } + _, err = page.WaitForSelector(".tree-node") + if err != nil { + t.Errorf("Wait tree-node fail: %v", err) + t.FailNow() + } + err = page.Click("#rightPane .result-list-item .list-item-title>>nth=0") + if err != nil { + t.Errorf("Click first result fail: %v", err) + } + err = page.Click(".page-result .btn:has-text('提交缺陷到禅道')") + if err != nil { + t.Errorf("Click re-exec failed case btn fail: %v", err) + } + _, err = page.WaitForSelector("#submitBugModal") + if err != nil { + t.Errorf("Wait submitBugModal fail: %v", err) + t.FailNow() + } + err = page.Click("#submitBugModal>>text=确定") + if err != nil { + t.Errorf("The Click submit form fail: %v", err) + t.FailNow() + } + _, err = page.WaitForSelector("#submitBugModal", playwright.PageWaitForSelectorOptions{State: playwright.WaitForSelectorStateHidden}) + if err != nil { + t.Errorf("Wait submitBugModal hide fail: %v", err) + t.FailNow() + } + Locator, err = page.Locator(".toast-notification-container", playwright.PageLocatorOptions{HasText: "提交成功"}) + c, err := Locator.Count() + if err != nil || c == 0 { + t.Errorf("Submit bug to zentao fail: %v", err) + t.FailNow() + } + if err = workspaceBrowser.Close(); err != nil { + t.Errorf("The workspaceBrowser cannot be closed: %v", err) + t.FailNow() + } + if err = pw.Stop(); err != nil { + t.Errorf("The playwright cannot be stopped: %v", err) + t.FailNow() + } +} + +func TestUiResult(t *testing.T) { + t.Run("SubmitResult", SubmitResult) + t.Run("SubmitBug", SubmitBug) +} diff --git a/test/ui_run_test.go b/test/ui_run_test.go index 1ad3bd6b435d91d88a8bdcb97e10889e2d9ec38d..e1ef975e6b352dc9251b9f1d7b6f9fe15bdee6fa 100644 --- a/test/ui_run_test.go +++ b/test/ui_run_test.go @@ -15,7 +15,7 @@ func RunScript(t *testing.T) { t.Error(err) t.FailNow() } - headless := false + headless := true var slowMo float64 = 100 workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo}) if err != nil { @@ -28,8 +28,7 @@ func RunScript(t *testing.T) { t.FailNow() } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() } @@ -82,26 +81,32 @@ func RunScript(t *testing.T) { resultTitleElement, err := page.QuerySelector("#rightPane .result-list-item .list-item-title") if err != nil { t.Errorf("Find log title in logPane fail: %v", err) + t.FailNow() } resultTitle, err := resultTitleElement.InnerText() if err != nil || resultTitle != "1_string_match.php" { t.Errorf("Find result in rightPane fail: %v", err) + t.FailNow() } timeElement, err := page.QuerySelector("#log-list .item .time") if err != nil { t.Errorf("Find log time in logPane fail: %v", err) + t.FailNow() } logTime, err := timeElement.InnerText() if err != nil { t.Errorf("Find log time in logPane fail: %v", err) + t.FailNow() } resultTimeElement, err := page.QuerySelector("#rightPane .result-list-item .list-item-trailing-text") if err != nil { t.Errorf("Find log time in logPane fail: %v", err) + t.FailNow() } resultTime, err := resultTimeElement.InnerText() if err != nil || logTime[:5] != resultTime { t.Errorf("Find result in rightPane fail: %v", err) + t.FailNow() } if err = workspaceBrowser.Close(); err != nil { @@ -120,7 +125,7 @@ func RunSelectedScripts(t *testing.T) { t.Error(err) t.FailNow() } - headless := false + headless := true var slowMo float64 = 100 workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo}) if err != nil { @@ -133,8 +138,7 @@ func RunSelectedScripts(t *testing.T) { t.FailNow() } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() } @@ -212,26 +216,32 @@ func RunSelectedScripts(t *testing.T) { resultTitleElement, err := page.QuerySelector("#rightPane .result-list-item .list-item-title") if err != nil { t.Errorf("Find log title in logPane fail: %v", err) + t.FailNow() } resultTitle, err := resultTitleElement.InnerText() if err != nil || resultTitle != "单元测试工作目录(2)" { t.Errorf("Find result in rightPane fail: %v", err) + t.FailNow() } timeElement, err := page.QuerySelector("#log-list .item .time") if err != nil { t.Errorf("Find log time in logPane fail: %v", err) + t.FailNow() } logTime, err := timeElement.InnerText() if err != nil { t.Errorf("Find log time in logPane fail: %v", err) + t.FailNow() } resultTimeElement, err := page.QuerySelector("#rightPane .result-list-item .list-item-trailing-text") if err != nil { t.Errorf("Find log time in logPane fail: %v", err) + t.FailNow() } resultTime, err := resultTimeElement.InnerText() if err != nil || logTime[:5] != resultTime { t.Errorf("Find result in rightPane fail: %v", err) + t.FailNow() } if err = workspaceBrowser.Close(); err != nil { t.Errorf("The workspaceBrowser cannot be closed: %v", err) @@ -249,7 +259,7 @@ func RunOpenedAndLast(t *testing.T) { t.Error(err) t.FailNow() } - headless := false + headless := true var slowMo float64 = 100 workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo}) if err != nil { @@ -262,8 +272,7 @@ func RunOpenedAndLast(t *testing.T) { t.FailNow() } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() } @@ -276,7 +285,6 @@ func RunOpenedAndLast(t *testing.T) { if err != nil { t.Errorf("The siteMenuToggle is missing: %v", err) t.FailNow() - } err = Locator.Click() if err != nil { @@ -287,7 +295,6 @@ func RunOpenedAndLast(t *testing.T) { if err != nil { t.Errorf("Wait for site list nav fail: %v", err) t.FailNow() - } err = page.Click(".list-item-title>>text=单元测试站点") if err != nil { @@ -324,21 +331,23 @@ func RunOpenedAndLast(t *testing.T) { if err != nil { t.Errorf("Click batchRunMenuToggle fail: %v", err) t.FailNow() - } err = page.Click(".list-item-content:has-text('执行打开文件')") if err != nil { t.Errorf("The Click Run opened scripts fail: %v", err) t.FailNow() - } _, err = page.WaitForSelector("#log-list>>.msg-span>>:has-text('执行2个用例,耗时')") if err != nil { t.Errorf("Wait exec opened scripts result fail: %v", err) t.FailNow() } - element, err := page.QuerySelector("#log-list>>.msg-span>>:has-text('执行2个用例,耗时')") - innerText, err := element.InnerText() + Locator, err = page.Locator("#log-list>>code:has-text('执行2个用例,耗时')") + if err != nil { + t.Errorf("Find exec opened scripts result fail: %v", err) + t.FailNow() + } + innerText, err := Locator.InnerText() if err != nil { t.Errorf("Find exec opened scripts result fail: %v", err) t.FailNow() @@ -356,9 +365,10 @@ func RunOpenedAndLast(t *testing.T) { if err != nil || resultTitle != "单元测试工作目录(2)" { t.Errorf("Find result in rightPane fail: %v", err) } - timeElement, err := page.QuerySelector("#log-list .item .time") + timeElement, err := Locator.Locator(".time>>span") if err != nil { - t.Errorf("Find log time in logPane fail: %v", err) + t.Errorf("Find log time element in logPane fail: %v", err) + t.FailNow() } logTime, err := timeElement.InnerText() if err != nil { @@ -377,21 +387,19 @@ func RunOpenedAndLast(t *testing.T) { if err != nil { t.Errorf("Click batchRunMenuToggle fail: %v", err) t.FailNow() - } err = page.Click(".list-item-content:has-text('执行上次')") if err != nil { t.Errorf("The Click Run last time fail: %v", err) t.FailNow() - } _, err = page.WaitForSelector("#log-list>>.msg-span>>:has-text('执行2个用例,耗时')") if err != nil { t.Errorf("Wait exec last time result fail: %v", err) t.FailNow() } - element, err = page.QuerySelector("#log-list>>.msg-span>>:has-text('执行2个用例,耗时')") - innerText, err = element.InnerText() + Locator, err = page.Locator("#log-list>>code:has-text('执行2个用例,耗时')") + innerText, err = Locator.InnerText() if err != nil { t.Errorf("Find exec last time result fail: %v", err) t.FailNow() @@ -403,26 +411,32 @@ func RunOpenedAndLast(t *testing.T) { resultTitleElement, err = page.QuerySelector("#rightPane .result-list-item .list-item-title") if err != nil { t.Errorf("Find log title in logPane fail: %v", err) + t.FailNow() } resultTitle, err = resultTitleElement.InnerText() if err != nil || resultTitle != "单元测试工作目录(2)" { t.Errorf("Find result in rightPane fail: %v", err) + t.FailNow() } - timeElement, err = page.QuerySelector("#log-list .item .time") + timeElement, err = Locator.Locator(".time>>span") if err != nil { - t.Errorf("Find log time in logPane fail: %v", err) + t.Errorf("Find log time element in logPane fail: %v", err) + t.FailNow() } logTime, err = timeElement.InnerText() if err != nil { t.Errorf("Find log time in logPane fail: %v", err) + t.FailNow() } resultTimeElement, err = page.QuerySelector("#rightPane .result-list-item .list-item-trailing-text") if err != nil { t.Errorf("Find log time in logPane fail: %v", err) + t.FailNow() } resultTime, err = resultTimeElement.InnerText() if err != nil || logTime[:5] != resultTime { t.Errorf("Find result in rightPane fail: %v", err) + t.FailNow() } if err = workspaceBrowser.Close(); err != nil { t.Errorf("The workspaceBrowser cannot be closed: %v", err) @@ -440,7 +454,7 @@ func RunAll(t *testing.T) { t.Error(err) t.FailNow() } - headless := false + headless := true var slowMo float64 = 100 workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo}) if err != nil { @@ -453,8 +467,7 @@ func RunAll(t *testing.T) { t.FailNow() } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() } @@ -467,7 +480,6 @@ func RunAll(t *testing.T) { if err != nil { t.Errorf("The siteMenuToggle is missing: %v", err) t.FailNow() - } err = Locator.Click() if err != nil { @@ -478,7 +490,6 @@ func RunAll(t *testing.T) { if err != nil { t.Errorf("Wait for site list nav fail: %v", err) t.FailNow() - } err = page.Click(".list-item-title>>text=单元测试站点") if err != nil { @@ -501,21 +512,23 @@ func RunAll(t *testing.T) { if err != nil { t.Errorf("Click batchRunMenuToggle fail: %v", err) t.FailNow() - } err = page.Click(".list-item-content:has-text('执行所有文件')") if err != nil { t.Errorf("The Click Run all scripts fail: %v", err) t.FailNow() - } _, err = page.WaitForSelector("#log-list>>.msg-span>>:has-text('执行3个用例,耗时')") if err != nil { t.Errorf("Wait exec all scripts result fail: %v", err) t.FailNow() } - element, err := page.QuerySelector("#log-list>>.msg-span>>:has-text('执行3个用例,耗时')") - innerText, err := element.InnerText() + Locator, err = page.Locator("#log-list>>code:has-text('执行3个用例,耗时')") + if err != nil { + t.Errorf("Find exec all scripts result fail: %v", err) + t.FailNow() + } + innerText, err := Locator.InnerText() if err != nil { t.Errorf("Find exec all scripts result fail: %v", err) t.FailNow() @@ -527,22 +540,27 @@ func RunAll(t *testing.T) { resultTitleElement, err := page.QuerySelector("#rightPane .result-list-item .list-item-title") if err != nil { t.Errorf("Find log title in logPane fail: %v", err) + t.FailNow() } resultTitle, err := resultTitleElement.InnerText() if err != nil || resultTitle != "单元测试工作目录(3)" { t.Errorf("Find result in rightPane fail: %v", err) + t.FailNow() } - timeElement, err := page.QuerySelector("#log-list .item .time") + timeElement, err := Locator.Locator(".time>>span") if err != nil { - t.Errorf("Find log time in logPane fail: %v", err) + t.Errorf("Find log time element in logPane fail: %v", err) + t.FailNow() } logTime, err := timeElement.InnerText() if err != nil { t.Errorf("Find log time in logPane fail: %v", err) + t.FailNow() } resultTimeElement, err := page.QuerySelector("#rightPane .result-list-item .list-item-trailing-text") if err != nil { t.Errorf("Find log time in logPane fail: %v", err) + t.FailNow() } resultTime, err := resultTimeElement.InnerText() if err != nil || logTime[:5] != resultTime { @@ -564,7 +582,7 @@ func RunReExecFailCase(t *testing.T) { t.Error(err) t.FailNow() } - headless := false + headless := true var slowMo float64 = 100 workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo}) if err != nil { @@ -577,8 +595,7 @@ func RunReExecFailCase(t *testing.T) { t.FailNow() } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() } @@ -592,7 +609,6 @@ func RunReExecFailCase(t *testing.T) { if err != nil { t.Errorf("The siteMenuToggle is missing: %v", err) t.FailNow() - } err = Locator.Click() if err != nil { @@ -603,7 +619,6 @@ func RunReExecFailCase(t *testing.T) { if err != nil { t.Errorf("Wait for site list nav fail: %v", err) t.FailNow() - } err = page.Click(".list-item-title>>text=单元测试站点") if err != nil { @@ -628,8 +643,12 @@ func RunReExecFailCase(t *testing.T) { t.Errorf("Wait exec script result fail: %v", err) t.FailNow() } - element, err := page.QuerySelector("#log-list>>.msg-span>>:has-text('执行1个用例,耗时')") - innerText, err := element.InnerText() + Locator, err = page.Locator("#log-list>>code:has-text('执行1个用例,耗时')") + if err != nil { + t.Errorf("Find exec script log fail: %v", err) + t.FailNow() + } + innerText, err := Locator.InnerText() if err != nil { t.Errorf("Find exec script result fail: %v", err) t.FailNow() @@ -641,26 +660,153 @@ func RunReExecFailCase(t *testing.T) { resultTitleElement, err := page.QuerySelector("#rightPane .result-list-item .list-item-title") if err != nil { t.Errorf("Find log title in logPane fail: %v", err) + t.FailNow() } resultTitle, err := resultTitleElement.InnerText() - if err != nil || resultTitle != "单元测试工作目录(3)" { + if err != nil || resultTitle != "1_string_match.php" { t.Errorf("Find result in rightPane fail: %v", err) + t.FailNow() } - timeElement, err := page.QuerySelector("#log-list .item .time") + timeElement, err := Locator.Locator(".time>>span") + if err != nil || resultTitle != "1_string_match.php" { + t.Errorf("Find log time element in logPane fail: %v", err) + t.FailNow() + } + logTime, err := timeElement.InnerText() + if err != nil { + t.Errorf("Find log time in logPane fail: %v", err) + t.FailNow() + } + resultTimeElement, err := page.QuerySelector("#rightPane .result-list-item .list-item-trailing-text") if err != nil { t.Errorf("Find log time in logPane fail: %v", err) + t.FailNow() + } + resultTime, err := resultTimeElement.InnerText() + if err != nil || logTime[:5] != resultTime { + t.Errorf("Find result in rightPane fail: %v", err) + t.FailNow() + } + if err = workspaceBrowser.Close(); err != nil { + t.Errorf("The workspaceBrowser cannot be closed: %v", err) + t.FailNow() + } + if err = pw.Stop(); err != nil { + t.Errorf("The playwright cannot be stopped: %v", err) + t.FailNow() + } +} + +func RunReExecAllCase(t *testing.T) { + pw, err := playwright.Run() + if err != nil { + t.Error(err) + t.FailNow() + } + headless := true + var slowMo float64 = 100 + workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo}) + if err != nil { + t.Errorf("Fail to launch the web workspaceBrowser: %v", err) + t.FailNow() + } + page, err := workspaceBrowser.NewPage() + if err != nil { + t.Errorf("Create the new page fail: %v", err) + t.FailNow() + } + if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { + t.Errorf("The specific URL is missing: %v", err) + t.FailNow() + } + _, err = page.WaitForSelector(".tree-node") + if err != nil { + t.Errorf("Wait tree-node fail: %v", err) + t.FailNow() + } + + Locator, err := page.Locator("#siteMenuToggle") + if err != nil { + t.Errorf("The siteMenuToggle is missing: %v", err) + t.FailNow() + } + err = Locator.Click() + if err != nil { + t.Errorf("The Click is fail: %v", err) + t.FailNow() + } + _, err = page.WaitForSelector("#navbar .list-item") + if err != nil { + t.Errorf("Wait for site list nav fail: %v", err) + t.FailNow() + } + err = page.Click(".list-item-title>>text=单元测试站点") + if err != nil { + t.Errorf("The Click site nav fail: %v", err) + t.FailNow() + } + _, err = page.WaitForSelector(".tree-node") + if err != nil { + t.Errorf("Wait tree-node fail: %v", err) + t.FailNow() + } + err = page.Click("#rightPane .result-list-item .list-item-title>>nth=0") + if err != nil { + t.Errorf("Click first result fail: %v", err) + } + err = page.Click(".result-action .btn:has-text('重新执行所有用例')") + if err != nil { + t.Errorf("Click re-exec failed case btn fail: %v", err) + } + _, err = page.WaitForSelector("#log-list>>.msg-span>>:has-text('执行3个用例,耗时')") + if err != nil { + t.Errorf("Wait exec script result fail: %v", err) + t.FailNow() + } + Locator, err = page.Locator("#log-list>>code:has-text('执行3个用例,耗时')") + if err != nil { + t.Errorf("Find exec script log fail: %v", err) + t.FailNow() + } + innerText, err := Locator.InnerText() + if err != nil { + t.Errorf("Find exec script result fail: %v", err) + t.FailNow() + } + if !strings.Contains(innerText, "2(66.0%) 通过,1(33.0%) 失败") { + t.Errorf("Exec failed case fail: %v", err) + t.FailNow() + } + resultTitleElement, err := page.QuerySelector("#rightPane .result-list-item .list-item-title") + if err != nil { + t.Errorf("Find log title in logPane fail: %v", err) + t.FailNow() + } + resultTitle, err := resultTitleElement.InnerText() + if err != nil || resultTitle != "单元测试工作目录(3)" { + t.Errorf("Find result in rightPane fail: %v", err) + t.FailNow() + } + timeElement, err := Locator.Locator(".time>>span") + if err != nil { + t.Errorf("Find log time element in logPane fail: %v", err) + t.FailNow() } logTime, err := timeElement.InnerText() if err != nil { t.Errorf("Find log time in logPane fail: %v", err) + t.FailNow() } resultTimeElement, err := page.QuerySelector("#rightPane .result-list-item .list-item-trailing-text") if err != nil { t.Errorf("Find log time in logPane fail: %v", err) + t.FailNow() } resultTime, err := resultTimeElement.InnerText() if err != nil || logTime[:5] != resultTime { t.Errorf("Find result in rightPane fail: %v", err) + t.FailNow() } if err = workspaceBrowser.Close(); err != nil { t.Errorf("The workspaceBrowser cannot be closed: %v", err) @@ -673,9 +819,10 @@ func RunReExecFailCase(t *testing.T) { } func TestUiRun(t *testing.T) { - // t.Run("RunScript", RunScript) - // t.Run("RunSelectedScripts", RunSelectedScripts) - // t.Run("RunOpenedAndLast", RunOpenedAndLast) - // t.Run("RunAll", RunAll) + t.Run("RunScript", RunScript) + t.Run("RunSelectedScripts", RunSelectedScripts) + t.Run("RunOpenedAndLast", RunOpenedAndLast) + t.Run("RunAll", RunAll) + t.Run("RunReExecAllCase", RunReExecAllCase) t.Run("RunReExecFailCase", RunReExecFailCase) } diff --git a/test/ui_site_test.go b/test/ui_site_test.go index 29932badc1e29200ac90fa8bece6f9507af0b46d..8e0a001c782dcdaa5322be8bb0aca5f22a8d0558 100644 --- a/test/ui_site_test.go +++ b/test/ui_site_test.go @@ -13,7 +13,6 @@ func CreateSite(t *testing.T) { if err != nil { t.Error(err) t.FailNow() - } headless := false var slowMo float64 = 100 @@ -23,112 +22,93 @@ func CreateSite(t *testing.T) { if err != nil { t.Errorf("Fail to launch the web siteBrowser: %v", err) t.FailNow() - } page, err := siteBrowser.NewPage() if err != nil { t.Errorf("Create the new page fail: %v", err) t.FailNow() - } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() - } // page.WaitForSelector(".tree") Locator, err := page.Locator("#siteMenuToggle") if err != nil { t.Errorf("The siteMenuToggle is missing: %v", err) t.FailNow() - } err = Locator.Click() if err != nil { t.Errorf("The Click is fail: %v", err) t.FailNow() - } _, err = page.WaitForSelector("#navbar .list-item") if err != nil { t.Errorf("Wait for site list nav fail: %v", err) t.FailNow() - } err = page.Click("text=禅道站点管理") if err != nil { t.Errorf("The Click site nav fail: %v", err) t.FailNow() - } // page.WaitForSelector(".modal-title") err = page.Click("text=新建站点") if err != nil { t.Errorf("The Click create site fail: %v", err) t.FailNow() - } Locator, err = page.Locator("#siteFormModal input") if err != nil { t.Errorf("Find create site input fail: %v", err) t.FailNow() - } titleInput, err := Locator.Nth(0) if err != nil { t.Errorf("Find title input fail: %v", err) t.FailNow() - } err = titleInput.Fill("单元测试站点") if err != nil { t.Errorf("Fil title input fail: %v", err) t.FailNow() - } addressInput, err := Locator.Nth(1) if err != nil { t.Errorf("Find address input fail: %v", err) t.FailNow() - } err = addressInput.Fill("http://127.0.0.1/zentao/") if err != nil { t.Errorf("Fil address input fail: %v", err) t.FailNow() - } nameInput, err := Locator.Nth(2) if err != nil { t.Errorf("Find name input fail: %v", err) t.FailNow() - } err = nameInput.Fill("admin") if err != nil { t.Errorf("Fil name input fail: %v", err) t.FailNow() - } pwdInput, err := Locator.Nth(3) if err != nil { t.Errorf("Find passwd input fail: %v", err) t.FailNow() - } err = pwdInput.Fill("123456.") if err != nil { t.Errorf("Fil passwd input fail: %v", err) t.FailNow() - } err = page.Click("text=确定") if err != nil { t.Errorf("The Click submit form fail: %v", err) t.FailNow() - } page.WaitForTimeout(1000) Locator, err = page.Locator(".list-item-content span", playwright.PageLocatorOptions{HasText: "单元测试站点"}) @@ -136,18 +116,15 @@ func CreateSite(t *testing.T) { if err != nil || c == 0 { t.Errorf("Find created site fail: %v", err) t.FailNow() - } if err = siteBrowser.Close(); err != nil { t.Errorf("The siteBrowser cannot be closed: %v", err) t.FailNow() - } if err = pw.Stop(); err != nil { t.Errorf("The playwright cannot be stopped: %v", err) t.FailNow() - } } func EditSite(t *testing.T) { @@ -156,7 +133,6 @@ func EditSite(t *testing.T) { if err != nil { t.Error(err) t.FailNow() - } headless := false var slowMo float64 = 100 @@ -166,38 +142,31 @@ func EditSite(t *testing.T) { if err != nil { t.Errorf("Fail to launch the web siteBrowser: %v", err) t.FailNow() - } page, err := siteBrowser.NewPage() if err != nil { t.Errorf("Create the new page fail: %v", err) t.FailNow() - } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() - } Locator, err := page.Locator("#siteMenuToggle") if err != nil { t.Errorf("The siteMenuToggle is missing: %v", err) t.FailNow() - } err = Locator.Click() if err != nil { t.Errorf("The Click is fail: %v", err) t.FailNow() - } _, err = page.WaitForSelector("#navbar .list-item") if err != nil { t.Errorf("Wait for site list nav fail: %v", err) t.FailNow() - } err = page.Click("text=禅道站点管理") if err != nil { @@ -212,79 +181,66 @@ func EditSite(t *testing.T) { CreateSite(t) EditSite(t) return - } Locator, err = page.Locator(".list-item", playwright.PageLocatorOptions{HasText: "单元测试站点"}) if err != nil { t.Errorf("Find test site fail: %v", err) t.FailNow() - } err = page.Click("text=编辑") if err != nil { t.Errorf("The Click update site fail: %v", err) t.FailNow() - } Locator, err = page.Locator("#siteFormModal input") if err != nil { t.Errorf("Find update site input fail: %v", err) t.FailNow() - } titleInput, err := Locator.Nth(0) if err != nil { t.Errorf("Find title input fail: %v", err) t.FailNow() - } err = titleInput.Fill("单元测试站点-update") if err != nil { t.Errorf("Fil title input fail: %v", err) t.FailNow() - } addressInput, err := Locator.Nth(1) if err != nil { t.Errorf("Find address input fail: %v", err) t.FailNow() - } err = addressInput.Fill("http://127.0.0.1/zentao/") if err != nil { t.Errorf("Fil address input fail: %v", err) t.FailNow() - } nameInput, err := Locator.Nth(2) if err != nil { t.Errorf("Find name input fail: %v", err) t.FailNow() - } err = nameInput.Fill("admin") if err != nil { t.Errorf("Fil name input fail: %v", err) t.FailNow() - } pwdInput, err := Locator.Nth(3) if err != nil { t.Errorf("Find passwd input fail: %v", err) t.FailNow() - } err = pwdInput.Fill("123456.") if err != nil { t.Errorf("Fil passwd input fail: %v", err) t.FailNow() - } err = page.Click("#siteFormModal>>.modal-action>>span:has-text(\"确定\")") if err != nil { t.Errorf("The Click submit form fail: %v", err) t.FailNow() - } page.WaitForTimeout(1000) Locator, err = page.Locator(".list-item-content", playwright.PageLocatorOptions{HasText: "单元测试站点-update"}) @@ -292,18 +248,15 @@ func EditSite(t *testing.T) { if err != nil || c == 0 { t.Errorf("Find update site fail: %v", err) t.FailNow() - } if err = siteBrowser.Close(); err != nil { t.Errorf("The siteBrowser cannot be closed: %v", err) t.FailNow() - } if err = pw.Stop(); err != nil { t.Errorf("The playwright cannot be stopped: %v", err) t.FailNow() - } } func DeleteSite(t *testing.T) { @@ -311,7 +264,6 @@ func DeleteSite(t *testing.T) { if err != nil { t.Error(err) t.FailNow() - } headless := false var slowMo float64 = 100 @@ -321,65 +273,54 @@ func DeleteSite(t *testing.T) { if err != nil { t.Errorf("Fail to launch the web siteBrowser: %v", err) t.FailNow() - } page, err := siteBrowser.NewPage() if err != nil { t.Errorf("Create the new page fail: %v", err) t.FailNow() - } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() - } // page.WaitForSelector(".tree") Locator, err := page.Locator("#siteMenuToggle") if err != nil { t.Errorf("The siteMenuToggle is missing: %v", err) t.FailNow() - } err = Locator.Click() if err != nil { t.Errorf("The Click is fail: %v", err) t.FailNow() - } _, err = page.WaitForSelector("#navbar .list-item") if err != nil { t.Errorf("Wait for site list nav fail: %v", err) t.FailNow() - } err = page.Click("text=禅道站点管理") if err != nil { t.Errorf("The Click site nav fail: %v", err) t.FailNow() - } // page.WaitForSelector(".modal-title") Locator, err = page.Locator(".list-item", playwright.PageLocatorOptions{HasText: "单元测试站点"}) if err != nil { t.Errorf("Find test site fail: %v", err) t.FailNow() - } err = page.Click("text=删除") if err != nil { t.Errorf("The Click delete site fail: %v", err) t.FailNow() - } page.WaitForTimeout(1000) err = page.Click(":nth-match(.modal-action > button, 1)") if err != nil { t.Errorf("The Click submit form fail: %v", err) t.FailNow() - } page.WaitForTimeout(1000) Locator, err = page.Locator(".list-item-content", playwright.PageLocatorOptions{HasText: "单元测试站点"}) @@ -387,18 +328,15 @@ func DeleteSite(t *testing.T) { if err != nil || c > 0 { t.Errorf("Delete site fail: %v", err) t.FailNow() - } if err = siteBrowser.Close(); err != nil { t.Errorf("The siteBrowser cannot be closed: %v", err) t.FailNow() - } if err = pw.Stop(); err != nil { t.Errorf("The playwright cannot be stopped: %v", err) t.FailNow() - } } diff --git a/test/ui_workspace_test.go b/test/ui_workspace_test.go index 8839e0b290cf9d749e7fb20a7c827e739d7faf49..ae6354875ce0f9eeb62f1c2aa3c64ad5635f1d45 100644 --- a/test/ui_workspace_test.go +++ b/test/ui_workspace_test.go @@ -31,8 +31,7 @@ func CreateWorkspace(t *testing.T) { t.FailNow() } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() } @@ -161,8 +160,7 @@ func SyncFromZentao(t *testing.T) { t.FailNow() } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() } @@ -239,8 +237,7 @@ func SyncToZentao(t *testing.T) { t.FailNow() } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() } @@ -305,8 +302,7 @@ func Copy(t *testing.T) { t.FailNow() } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() } @@ -402,8 +398,7 @@ func DeleteScript(t *testing.T) { t.FailNow() } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() } @@ -479,8 +474,7 @@ func DeleteDir(t *testing.T) { t.FailNow() } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() } @@ -557,8 +551,7 @@ func DeleteWorkspace(t *testing.T) { t.FailNow() } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() } @@ -624,8 +617,7 @@ func Clip(t *testing.T) { t.FailNow() } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() } @@ -722,8 +714,7 @@ func FilterDir(t *testing.T) { t.FailNow() } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() } @@ -797,8 +788,7 @@ func FilterSuite(t *testing.T) { t.FailNow() } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() } @@ -883,8 +873,7 @@ func FilterTask(t *testing.T) { t.FailNow() } if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{ - WaitUntil: playwright.WaitUntilStateDomcontentloaded, - }); err != nil { + WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil { t.Errorf("The specific URL is missing: %v", err) t.FailNow() } diff --git a/ui/src/views/result/FormBug.vue b/ui/src/views/result/FormBug.vue index 7dcd0f6516737d7a4cf7c3b22a4dfa673085f61e..9084a5c8d6c2d0addd6d5ed0e034bafa05c0c5ef 100644 --- a/ui/src/views/result/FormBug.vue +++ b/ui/src/views/result/FormBug.vue @@ -1,5 +1,6 @@