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]¶ -
- 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.checkn times, the checkbox keeps checked, it never get unchecked.To uncheck a checkbox, see the
uncheckmethod.Example
>>> browser.check("some-check")
- choose(name, value)¶
Choose a value in a radio buttons group.
Example
You have two radio buttons in a page, with the name
genderand values ‘F’ and ‘M’.>>> browser.choose('gender', 'F')Then the female gender will be chosen.
- property cookies¶
A
CookieManagerinstance.For more details, check the cookies manipulation section.
- evaluate_script(script, *args)¶
Similar to
execute_scriptmethod.Execute javascript in the browser and return the value of the expression.
Example
>>> assert 4 == browser.evaluate_script('2 + 2')
- execute_script(script, *args)¶
Execute a piece of JavaScript in the browser.
Example
>>> browser.execute_script('document.getElementById("body").innerHTML = "<p>Hello world!</p>"')
-
fill_form(field_values, form_id=
None, name=None, ignore_missing=False)¶ Fill the fields identified by
namewith the content specified byvaluein 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.
- find(locator)¶
Find an element.
The default strategy used is ‘name’. To change the strategy, see: browser.set_find_strategy()
-
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.
-
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
-
find_by_name(name, wait_time=
None)¶ Find elements on the current page by their name.
Return an instance of
ElementList.
-
find_by_tag(tag, wait_time=
None)¶ Find all elements of a given tag in current page.
Returns an instance of
ElementList
-
find_by_text(text=
None, wait_time=None)¶ Find elements on the current page by their text.
Returns an instance of
ElementList
-
find_by_value(value, wait_time=
None)¶ Find elements on the current page by their value.
Returns an instance of
ElementList
-
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.
- find_option_by_text(text)¶
Finds
<option>elements by their text.Returns an instance of
ElementList
- find_option_by_value(value)¶
Find
<option>elements by their value.Returns an instance of
ElementList
- 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.
-
is_element_not_present_by_css(css_selector, wait_time=
None)¶ Verify if an element is not present in the current page.
-
is_element_not_present_by_id(id, wait_time=
None)¶ Verify if an element is not present in the current page.
-
is_element_not_present_by_name(name, wait_time=
None)¶ Verify if an element is not present in the current page.
-
is_element_not_present_by_tag(tag, wait_time=
None)¶ Verify if an element is not present in the current page.
-
is_element_not_present_by_text(text, wait_time=
None)¶ Verify if an element is not present in the current page.
-
is_element_not_present_by_value(value, wait_time=
None)¶ Verify if an element is not present in the current page.
-
is_element_not_present_by_xpath(xpath, wait_time=
None)¶ Verify if an element is not present in the current page.
-
is_element_present_by_css(css_selector, wait_time=
None)¶ Verify if an element is present in the current page.
-
is_element_present_by_name(name, wait_time=
None)¶ Verify if an element is present in the current page.
-
is_element_present_by_tag(tag, wait_time=
None)¶ Verify if an element is present in the current page.
-
is_element_present_by_text(text, wait_time=
None)¶ Verify if an element is present in the current page.
-
is_element_present_by_value(value, wait_time=
None)¶ Verify if an element is present in the current page.
-
is_element_present_by_xpath(xpath, wait_time=
None)¶ Verify if an element is present in the current page.
- 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 thenameof the<select>and thevalueof the<option>.Example
>>> browser.select("pets", "cat")
- 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.
- uncheck(name)¶
Uncheck a checkbox by its name.
Example
>>> browser.uncheck("some-check")If you call
brower.uncheckn times, the checkbox keeps unchecked, it never get checked.To check a checkbox, take a look in the
checkmethod.
- property url¶
URL of current page.