Externally useful attributes should be declared public and documented.

Old Selenium2Library has several attributes that are useful externally from custom libraries and extensions:

_run_on_failure_keyword
_speed_in_secs
_timeout_in_secs
_implicit_wait_in_secs
_current_browser()

We should indicate that using these externally is OK by removing the leading underscore. The current WebDriver instance should also be accessible as a normal attribute (i.e. without calling a method like current_browser()) and we should name the attribute webdriver to make it explicit what it actually is. I would also remove unnecessary _in_secs postfixes. In other words, I would like to have these attributes instead:

run_on_failure_keyword
speed
timeout
implicit_wait
webdriver

Renaming these attributes is obviously a backwards incompatible change. We should thus add propertys that enable the old functionality but emit deprecation warnings. These propertys can then be removed in 3.1 or later.


UPDATES:

  1. We used browser attribute instead of webdriver until 3.0 RC 1.

  2. In 3.0 RC 1 we added also methods find_element and find_elements directly to the library itself. These methods form the recommended public API to find elements for external tools.