提交 d9c8b744 编写于 作者: Z zhaoke

Merge branch 'main' of github.com:easysoft/zentaoatf

......@@ -81,6 +81,7 @@ func (p *Webpage) Locator(selector string, options ...playwright.PageLocatorOpti
PlwLocator: locator,
Selector: selector,
T: t,
Page: p.Page,
}
return
......
......@@ -16,6 +16,7 @@ type MyLocator struct {
Selector string
PlwLocator playwright.Locator
T provider.T
Page playwright.Page
}
type MyElementHandle struct {
......
......@@ -3,6 +3,9 @@ package plw
import (
"errors"
"fmt"
constTestHelper "github.com/easysoft/zentaoatf/test/helper/conf"
"github.com/easysoft/zentaoatf/test/ui/conf"
"time"
"github.com/easysoft/zentaoatf/test/ui/utils"
playwright "github.com/playwright-community/playwright-go"
......@@ -12,6 +15,7 @@ func (l MyLocator) Click(options ...playwright.PageClickOptions) (err error) {
err = l.PlwLocator.Click(options...)
t := l.T
if err != nil {
l.ScreenShot()
err = errors.New(fmt.Sprintf("Click %s fail: %s", l.Selector, err.Error()))
utils.PrintErrOrNot(err, t)
}
......@@ -23,6 +27,7 @@ func (l MyLocator) RightClick(selector string) {
t := l.T
err := l.PlwLocator.Click(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
if err != nil {
l.ScreenShot()
err = errors.New(fmt.Sprintf("Rigth click %s fail: %s", selector, err.Error()))
utils.PrintErrOrNot(err, t)
}
......@@ -33,6 +38,7 @@ func (l MyLocator) Type(text string, options ...playwright.PageTypeOptions) (err
err = l.PlwLocator.Type(text, options...)
t := l.T
if err != nil {
l.ScreenShot()
err = errors.New(fmt.Sprintf("Type %s fail: %s", l.Selector, err.Error()))
utils.PrintErrOrNot(err, t)
}
......@@ -44,6 +50,7 @@ func (l MyLocator) Press(text string, options ...playwright.PagePressOptions) (e
err = l.PlwLocator.Press(text, options...)
t := l.T
if err != nil {
l.ScreenShot()
err = errors.New(fmt.Sprintf("Press %s fail: %s", l.Selector, err.Error()))
utils.PrintErrOrNot(err, t)
}
......@@ -55,12 +62,14 @@ func (l MyLocator) FillNth(nth int, value string, options ...playwright.FrameFil
t := l.T
input, err := l.PlwLocator.Nth(nth)
if err != nil {
l.ScreenShot()
err = errors.New(fmt.Sprintf("Fill %s fail: %s", l.Selector, err.Error()))
utils.PrintErrOrNot(err, t)
}
err = input.Fill(value, options...)
if err != nil {
l.ScreenShot()
err = errors.New(fmt.Sprintf("Fill %s fail: %s", l.Selector, err.Error()))
utils.PrintErrOrNot(err, t)
}
......@@ -72,6 +81,7 @@ func (l MyLocator) Fill(value string, options ...playwright.FrameFillOptions) (e
t := l.T
err = l.PlwLocator.Fill(value, options...)
if err != nil {
l.ScreenShot()
err = errors.New(fmt.Sprintf("Fill %s fail: %s", l.Selector, err.Error()))
utils.PrintErrOrNot(err, t)
}
......@@ -83,12 +93,14 @@ func (l MyLocator) SelectNth(nth int, values playwright.SelectOptionValues) (err
t := l.T
selectLocator, err := l.PlwLocator.Nth(nth)
if err != nil {
l.ScreenShot()
err = errors.New(fmt.Sprintf("Select %s fail: %s", l.Selector, err.Error()))
utils.PrintErrOrNot(err, t)
}
_, err = selectLocator.SelectOption(values)
if err != nil {
l.ScreenShot()
err = errors.New(fmt.Sprintf("Select %s fail: %s", l.Selector, err.Error()))
utils.PrintErrOrNot(err, t)
}
......@@ -104,6 +116,7 @@ func (l MyLocator) Locator(selector string) (ret MyLocator) {
}
if err != nil {
l.ScreenShot()
err = errors.New(fmt.Sprintf("Get Locator %s fail: %s", selector, err.Error()))
utils.PrintErrOrNot(err, t)
}
......@@ -120,6 +133,7 @@ func (l MyLocator) InnerText() string {
t := l.T
text, err := l.PlwLocator.InnerText()
if err != nil {
l.ScreenShot()
err = errors.New(fmt.Sprintf("Get %s InnerText fail: %s", l.Selector, err.Error()))
utils.PrintErrOrNot(err, t)
}
......@@ -130,6 +144,7 @@ func (l MyLocator) Count() int {
t := l.T
count, err := l.PlwLocator.Count()
if err != nil {
l.ScreenShot()
err = errors.New(fmt.Sprintf("Get %s count fail: %s", l.Selector, err.Error()))
utils.PrintErrOrNot(err, t)
}
......@@ -140,12 +155,21 @@ func (l MyLocator) Hover(options ...playwright.PageHoverOptions) {
t := l.T
err := l.PlwLocator.Hover(options...)
if err != nil {
l.ScreenShot()
err = errors.New(fmt.Sprintf("Hover %s fail: %s", l.Selector, err.Error()))
utils.PrintErrOrNot(err, t)
}
return
}
func (l *MyLocator) ScreenShot() {
if !conf.ShowErr && !conf.ExitAllOnError {
return
}
var screenshotPath = fmt.Sprintf("%stest/screenshot/%v.png", constTestHelper.RootPath, time.Now().Unix())
l.Page.Screenshot(playwright.PageScreenshotOptions{Path: &screenshotPath})
}
func (l MyElementHandle) InnerText(nth int) string {
t := l.T
text, err := l.ElementHandles[nth].InnerText()
......
......@@ -96,6 +96,7 @@ func RunBugStatistic(t provider.T) {
ztfTestHelper.ExpandWorspace(webpage)
scriptLocator := webpage.Locator(".tree-node-title>>text=1_string_match.php")
scriptLocator.Click()
scriptLocator.Click()
webpage.WaitForResponse("**/statistic*")
webpage.WaitForTimeout(1000)
elements := webpage.QuerySelectorAll(".statistic>>span")
......
......@@ -315,11 +315,20 @@ func RunUnit(t provider.T) {
locator.Click(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
webpage.Click(".tree-context-menu>>text=执行")
webpage.WaitForSelectorTimeout("#tabsPane >> text=执行", 3000)
locator = webpage.Locator("#tabsPane>>.form-item:has-text('测试命令')>>input")
locator.FillNth(0, "mvn clean package test")
webpage.Check(`#tabsPane >> input[type="checkbox"]`)
locator = webpage.Locator("#tabsPane:has-text('禅道测试单标题')>>input")
locator.FillNth(2, "test unit")
webpage.Click("#tabsPane >> text=执行")
webpage.WaitForSelector("#log-list>>.msg-span>>:has-text('执行3个用例,耗时')")
plwConf.DisableErr()
err := webpage.WaitForSelector("#log-list")
if err != nil {
webpage.Click("#tabsPane >> text=执行")
}
plwConf.EnableErr()
webpage.WaitForSelectorTimeout("#log-list>>.msg-span>>:has-text('执行3个用例,耗时')", 20000)
locator = webpage.Locator("#log-list>>code:has-text('执行3个用例,耗时')")
innerText := locator.InnerText()
if !strings.Contains(innerText, "3(100.0%) 通过,0(0.0%) 失败") {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册