Browser should only accept sessions and queries
I propose that we should remove the ability to pass an element to any of the Browser functions. Doing this removes an entire class of race conditions since queries block until they become true. This also makes the api more consistent and should help to reduce issues with chaining. We already support Element so if people want to find a specific element and then pass that element to the Element module then that will continue to work and will allow people to circumvent this design.
In order to increase usability of this api I believe that we will also need to add two enhancements to the current query api. The first is additional query options such as :selected and value. These will allow us to make assertions on form elements using only queries.
The other enhancement is the ability to compose queries together. This should help to encourage re-use and should provide an ergonomic way to utilize this new api.
I'll create new issues to discuss each of these improvements on their own. But I wanted to see how people felt about this design choice.