Although the default browser configurations provided by bok-choy should be sufficient for most needs, sometimes you'll need to customize it a little for particular tests or even an entire test suite. Here are some of the options bok-choy provides for doing that.
Whether you use a custom profile or not, you can customize the profile's
preferences before the browser is launched. To do this, create a function
which takes a
FirefoxProfile
as a parameter and add it via the
bok_choy.browser.add_profile_customizer()
function. For example,
to suppress the "unresponsive script" warning dialog that normally interrupts
a test case in Firefox when running accessibility tests on a particularly long
page:
def customize_preferences(profile):
profile.set_preference('dom.max_chrome_script_run_time', 0)
profile.set_preference('dom.max_script_run_time', 0)
bok_choy.browser.add_profile_customizer(customize_preferences)
This customization can be done in any of the normal places that test setup
occurs: setUpClass()
, a pytest fixture, the test case itself, etc. You
can clear any previously-added profile customizers via the
bok_choy.browser.clear_profile_customizers()
function.
Normally, selenium launches Firefox using a new, anonymous user profile. If
you have a specific Firefox profile that you'd like to use instead, you can
specify the path to its directory in the FIREFOX_PROFILE_PATH
environment
variable anytime before the call to bok_choy.browser.browser()
. This
passes the path to the
FirefoxProfile constructor
so the browser can be launched with any customizations that have been made to
that profile.