surf icon indicating copy to clipboard operation
surf copied to clipboard

Bug in browser.Forms creates nil entries

Open klokare opened this issue 11 months ago • 0 comments

I believe there is a subtle bug in browser.Forms. The slice is made with a length instead of a capacity. Here is the original code

// Forms returns an array of every form in the page.
func (bow *Browser) Forms() []Submittable {
	sel := bow.Find("form")
	len := sel.Length()
	if len == 0 {
		return nil
	}

	forms := make([]Submittable, len)
	sel.Each(func(_ int, s *goquery.Selection) {
		forms = append(forms, NewForm(bow, s))
	})
	return forms
}

The make line should be forms := make([]Submittable, 0, len) since we are using append to add items.

klokare avatar Mar 11 '24 09:03 klokare