File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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}
Original file line number Diff line number Diff 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 )
You can’t perform that action at this time.
0 commit comments