Skip to content

Commit 09537b4

Browse files
committed
Stabilize browser tests in CI
1 parent a930702 commit 09537b4

2 files changed

Lines changed: 21 additions & 11 deletions

File tree

browser/tab.go

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -210,18 +210,18 @@ func (b *Browser) TabClose(index int) error {
210210

211211
closeTID := pages[index].TargetID
212212

213-
closeErr := chromedp.Run(b.ctx, chromedp.ActionFunc(func(ctx context.Context) error {
214-
return target.CloseTarget(closeTID).Do(ctx)
215-
}))
216-
if closeErr != nil {
217-
return closeErr
218-
}
219-
220-
// Remove any tracked context for the closed tab after the target is closed.
221213
for i, entry := range b.tabs {
222214
if entry.targetID == closeTID {
223215
if entry.cancel != nil {
224-
entry.cancel()
216+
if err := chromedp.Cancel(entry.ctx); err != nil {
217+
return err
218+
}
219+
} else {
220+
if err := chromedp.Run(b.ctx, chromedp.ActionFunc(func(ctx context.Context) error {
221+
return target.CloseTarget(closeTID).Do(ctx)
222+
})); err != nil {
223+
return err
224+
}
225225
}
226226
b.tabs = append(b.tabs[:i], b.tabs[i+1:]...)
227227
switch {
@@ -234,10 +234,16 @@ func (b *Browser) TabClose(index int) error {
234234
b.activeTab = len(b.tabs) - 1
235235
}
236236
}
237-
break
237+
b.lastSnap = nil
238+
return nil
238239
}
239240
}
240241

242+
if err := chromedp.Run(b.ctx, chromedp.ActionFunc(func(ctx context.Context) error {
243+
return target.CloseTarget(closeTID).Do(ctx)
244+
})); err != nil {
245+
return err
246+
}
241247
b.lastSnap = nil
242248
return nil
243249
}

tests/helpers_test.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,11 @@ func newBrowser(t *testing.T) *browser.Browser {
4343
Timeout: 30 * time.Second,
4444
})
4545
if err == nil {
46-
break
46+
_, err = b.GetURL()
47+
if err == nil {
48+
break
49+
}
50+
b.Close()
4751
}
4852
if i < attempts-1 && strings.Contains(err.Error(), "chrome failed to start") {
4953
time.Sleep(750 * time.Millisecond)

0 commit comments

Comments
 (0)