The 2.0 release of Zombie changed the behavior of browser.wait(function) to consider it as the callback rather than the completion function, thus not returning a closure. The completion function is not passed in the options, together with the duration instead of changing the global setting. The callback is also passed directly rather than using the promise-based API to avoid a bug in Zombie 2.0.0 to at least 2.0.3 when using wait() without opening a page.
The type should be retrieved through the DOM property rather than the attribute to ensure that the default value of "text" is used when the attribute is not there. It also adds a few case missing normalizations and cleans the access to a few other properties.
Zombie does not simulate the keyboard events when filling a field.