Firefox WebDriver

Usage

To use the Firefox driver, pass the string firefox when you create the Browser instance:

from splinter import Browser
browser = Browser('firefox')

Note: if you don’t provide any driver to Browser function, firefox will be used.

Service

Selenium uses the Service class to manage geckodriver. An instance of this class can be given directly to Splinter.

from splinter import Browser
from selenium.webdriver.firefox.service import Service

my_service = Service()
browser = Browser('firefox', service=my_service)

Custom executable path

The Service object can be used to specify the path to geckodriver. For example:

from splinter import Browser
from selenium.webdriver.firefox.service import Service

my_service = Service(executable_path='</path/to/geckodriver>')
browser = Browser('firefox', service=my_service)

Custom binary path

The Service object can be used to specify the binary path. For example:

from selenium import webdriver

firefox_options = webdriver.firefox.options.Options()
firefox_options.binary_location = "/path/to/firefox_nightly"
browser = Browser('firefox', options=firefox_options)

Specify Profile

You can specify a Firefox profile for using on Browser function using the profile keyword (passing the name of the profile as a str instance):

from splinter import Browser
browser = Browser('firefox', profile='my_profile')

If you don’t specify a profile, a new temporary profile will be created (and deleted when you close the browser).

Selenium Capabilities

from splinter import Browser
browser = Browser('firefox', capabilities={'acceptSslCerts': True})

You can pass any selenium read-write DesiredCapabilities parameters for Firefox.

API docs

class splinter.driver.webdriver.firefox.WebDriver(options=None, profile=None, extensions=None, user_agent=None, profile_preferences=None, fullscreen=False, wait_time=2, capabilities=None, headless=False, incognito=False, service: Service | None = None, config: Config | None = None, **kwargs)[source]
attach_file(name, value)

Fill the field identified by name with the content specified by value.

Parameters:
name : str

name of the element to enter text into.

value : str

Value to enter into the element.

back()

The browser will navigate to the previous URL in the history.

If there is no previous URL, this method does nothing.

check(name)

Check a checkbox by its name.

If you call browser.check n times, the checkbox keeps checked, it never get unchecked.

To uncheck a checkbox, see the uncheck method.

Parameters:
name : str

name of the element to check.

Example

>>> browser.check("some-check")
choose(name, value)

Choose a value in a radio buttons group.

Parameters:
name : str

name of the element to enter text into.

value : str

Value to choose.

Example

You have two radio buttons in a page, with the name gender and values ‘F’ and ‘M’.

>>> browser.choose('gender', 'F')

Then the female gender will be chosen.

property cookies

A CookieManager instance.

For more details, check the cookies manipulation section.

evaluate_script(script, *args)

Similar to execute_script method.

Execute javascript in the browser and return the value of the expression.

Parameters:
script : str

The piece of JavaScript to execute.

Example

>>> assert 4 == browser.evaluate_script('2 + 2')
execute_script(script, *args)

Execute a piece of JavaScript in the browser.

Parameters:
script : str

The piece of JavaScript to execute.

Example

>>> browser.execute_script('document.getElementById("body").innerHTML = "<p>Hello world!</p>"')
fill(name, value)

Fill the field identified by name with the content specified by value.

Parameters:
name : str

name of the element to enter text into.

value : str

Value to enter into the element.

fill_form(field_values, form_id=None, name=None, ignore_missing=False)

Fill the fields identified by name with the content specified by value in a dict.

Currently, fill_form supports the following fields: text, password, textarea, checkbox, radio and select.

Checkboxes should be specified as a boolean in the dict.

Parameters:
field_values : dict

Values for all the fields in the form, in the pattern of {field name: field value}

form_id : str

Id of the form to fill. Can be used instead of name.

name : str

Name of the form to fill.

ignore_missing : bool

Ignore missing keys in the dict.

find(locator)

Find an element.

The default strategy used is ‘name’. To change the strategy, see: browser.set_find_strategy()

Parameters:
locator : str

The string used to locate an element.

Returns:

The found element

find_by(finder, finder_kwargs=None, original_find: str | None = None, original_query: str | None = None, wait_time: int | None = None)

Wrapper for finding elements.

Must be attached to a class.

Returns:

ElementList

find_by_css(css_selector, wait_time=None)

Return an instance of ElementList, using a CSS selector to query the current page content.

Parameters:
css_selector : str

CSS Selector to use in the search query.

find_by_id(id_value, wait_time=None)

Find an element on the current page by its id.

Even when only one element is find, this method returns an instance of ElementList

Parameters:
id_value : str

id to use in the search query.

find_by_name(name, wait_time=None)

Find elements on the current page by their name.

Return an instance of ElementList.

Parameters:
name : str

name to use in the search query.

find_by_tag(tag, wait_time=None)

Find all elements of a given tag in current page.

Returns an instance of ElementList

Parameters:
tag : str

tag to use in the search query.

find_by_text(text=None, wait_time=None)

Find elements on the current page by their text.

Returns an instance of ElementList

Parameters:
text : str

text to use in the search query.

find_by_value(value, wait_time=None)

Find elements on the current page by their value.

Returns an instance of ElementList

Parameters:
value : str

value to use in the search query.

find_by_xpath(xpath, original_find='xpath', original_query=None, wait_time=None)

Return an instance of ElementList, using a xpath selector to query the current page content.

Parameters:
xpath : str

Xpath to use in the search query.

find_option_by_text(text)

Finds <option> elements by their text.

Returns an instance of ElementList

Parameters:
text : str

text to use in the search query.

find_option_by_value(value)

Find <option> elements by their value.

Returns an instance of ElementList

Parameters:
value : str

value to use in the search query.

forward()

The browser will navigate to the next URL in the history.

If there is no URL to forward, this method does nothing.

get_alert(wait_time=None)

Change the context for working with alerts and prompts.

For more details, check the docs about iframes, alerts and prompts

get_iframe(frame_reference)

Change the context for working with iframes.

For more details, check the docs about iframes, alerts and prompts

property html

Source of current page.

html_snapshot(name='', suffix='.html', encoding='utf-8', unique_file=True)

Write the current html to a file.

Parameters:
name : str

File name.

suffix : str

File extension.

encoding : str

File encoding.

unique_file : str

If true, the filename will include a path to the system temp directory and extra characters at the end to ensure the file is unique.

Returns:

Full file name of the created html snapshot.

Return type:

str

is_element_not_present_by_css(css_selector, wait_time=None)

Verify if an element is not present in the current page.

Parameters:
css_selector : str

css selector for the element.

wait_time : int

Number of seconds to search.

Returns:

True if the element is not present and False if is present.

Return type:

bool

is_element_not_present_by_id(id, wait_time=None)

Verify if an element is not present in the current page.

Parameters:
id : str

id for the element.

wait_time : int

Number of seconds to search.

Returns:

True if the element is not present and False if is present.

Return type:

bool

is_element_not_present_by_name(name, wait_time=None)

Verify if an element is not present in the current page.

Parameters:
name : str

name of the element.

wait_time : int

Number of seconds to search.

Returns:

True if the element is not present and False if is present.

Return type:

bool

is_element_not_present_by_tag(tag, wait_time=None)

Verify if an element is not present in the current page.

Parameters:
tag : str

tag of the element.

wait_time : int

Number of seconds to search.

Returns:

True if the element is not present and False if is present.

Return type:

bool

is_element_not_present_by_text(text, wait_time=None)

Verify if an element is not present in the current page.

Parameters:
text : str

text in the element.

wait_time : int

Number of seconds to search.

Returns:

True if the element is not present and False if is present.

Return type:

bool

is_element_not_present_by_value(value, wait_time=None)

Verify if an element is not present in the current page.

Parameters:
value : str

value in the element.

wait_time : int

Number of seconds to search.

Returns:

True if the element is not present and False if is present.

Return type:

bool

is_element_not_present_by_xpath(xpath, wait_time=None)

Verify if an element is not present in the current page.

Parameters:
xpath : str

xpath of the element.

wait_time : int

Number of seconds to search.

Returns:

True if the element is not present and False if is present.

Return type:

bool

is_element_present_by_css(css_selector, wait_time=None)

Verify if an element is present in the current page.

Parameters:
css_selector : str

css selector for the element.

wait_time : int

Number of seconds to search.

Returns:

True if the element is present and False if is not present.

Return type:

bool

is_element_present_by_id(id, wait_time=None)

Verify if an element is present in the current page.

Parameters:
id : str

id for the element.

wait_time : int

Number of seconds to search.

Returns:

True if the element is present and False if is not present.

Return type:

bool

is_element_present_by_name(name, wait_time=None)

Verify if an element is present in the current page.

Parameters:
name : str

name of the element.

wait_time : int

Number of seconds to search.

Returns:

True if the element is present and False if is not present.

Return type:

bool

is_element_present_by_tag(tag, wait_time=None)

Verify if an element is present in the current page.

Parameters:
tag : str

tag of the element.

wait_time : int

Number of seconds to search.

Returns:

True if the element is present and False if is not present.

Return type:

bool

is_element_present_by_text(text, wait_time=None)

Verify if an element is present in the current page.

Parameters:
text : str

text in the element.

wait_time : int

Number of seconds to search.

Returns:

True if the element is present and False if is not present.

Return type:

bool

is_element_present_by_value(value, wait_time=None)

Verify if an element is present in the current page.

Parameters:
value : str

value in the element.

wait_time : int

Number of seconds to search.

Returns:

True if the element is present and False if is not present.

Return type:

bool

is_element_present_by_xpath(xpath, wait_time=None)

Verify if an element is present in the current page.

Parameters:
xpath : str

xpath of the element.

wait_time : int

Number of seconds to search.

Returns:

True if the element is present and False if is not present.

Return type:

bool

is_text_present(text, wait_time=None)

Check if a piece of text is on the page.

Parameters:
text : str

text to use in the search query.

wait_time : int

Number of seconds to search for the text.

Returns:

True if finds a match for the text and False if not.

Return type:

bool

new_tab(url: str) None

The browser will navigate to the given URL in a new tab.

Parameters:
url : str

URL path.

quit()

Quit the browser, closing its windows (if it has one).

reload()

Revisits the current URL.

screenshot(name='', suffix='.png', full=False, unique_file=True)

Take a screenshot of the current page and save it locally.

Parameters:
name : str

File name for the screenshot.

suffix : str

File extension for the screenshot.

full : bool

If the screenshot should be full screen or not.

unique_file : bool

If true, the filename will include a path to the system temp directory and extra characters at the end to ensure the file is unique.

Returns:

Full file name of the created screenshot.

Return type:

str

select(name, value)

Select an <option> element in an <select> element using the name of the <select> and the value of the <option>.

Parameters:
name : str

name of the option element.

value : str

Value to select.

Example

>>> browser.select("pets", "cat")
set_find_strategy(strategy)

Change the strategy used by browser.find().

Parameters:
strategy : str

The strategy used for finding elements. Can be one of either: ‘css’, ‘name’, ‘xpath’

Returns:

The current browser instance

Return type:

Browser

property title

Title of current page.

type(name, value, slowly=False)

Type a value into an element.

It’s useful to test javascript events like keyPress, keyUp, keyDown, etc.

Parameters:
name : str

name of the element to enter text into.

value : str

Value to enter into the element.

slowly : bool

If True, this function returns an iterator which will type one character per iteration.

uncheck(name)

Uncheck a checkbox by its name.

Parameters:
name : str

name of the element to uncheck.

Example

>>> browser.uncheck("some-check")

If you call brower.uncheck n times, the checkbox keeps unchecked, it never get checked.

To check a checkbox, take a look in the check method.

property url

URL of current page.

visit(url)

Use the browser to navigate to the given URL.

Parameters:
url : str

URL path.