Firefox WebDriver¶
Firefox WebDriver is provided by Selenium 2.0. To use it, you need to install Selenium 2.0 via pip:
$ [sudo] pip install selenium
It’s important to note that you also need to have Firefox and geckodriver installed in your machine and available on PATH environment variable. Once you have it installed, there is nothing you have to do, just use it :)
Using Firefox WebDriver¶
To use the Firefox driver, all you need to do is 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.
Using headless option for Firefox¶
Starting with Firefox 55, we can run Firefox as a headless browser in Linux.
from splinter import Browser
browser = Browser('firefox', headless=True)
Using incognito option for Firefox¶
We can run Firefox as a private browser.
from splinter import Browser
browser = Browser('firefox', incognito=True)
How to use a specific profile for Firefox¶
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).
How to use specific extensions for Firefox¶
An extension for firefox is a .xpi archive. To use an extension in Firefox webdriver profile you need to give the path of the extension, using the extensions keyword (passing the extensions as a list instance):
from splinter import Browser
browser = Browser('firefox', extensions=['extension1.xpi', 'extension2.xpi'])
If you give an extension, after you close the browser, the extension will be deleted from the profile, even if is not a temporary one.
How to use selenium capabilities for Firefox¶
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(profile=None, extensions=None, user_agent=None, profile_preferences=None, fullscreen=False, wait_time=2, timeout=90, capabilities=None, headless=False, incognito=False, **kwargs)¶ -
attach_file(name, value)¶ Fill the field identified by
namewith the content specified byvalue.
-
back()¶ Back to the last URL in the browsing history.
If there is no URL to back, this method does nothing.
-
check(name)¶ Checks a checkbox by its name.
Example:
>>> browser.check("agree-with-terms")
If you call
browser.checkn times, the checkbox keeps checked, it never get unchecked.To unckech a checkbox, take a look in the
uncheckmethod.
-
choose(name, value)¶ Chooses a value in a radio buttons group.
Suppose you have the two radio buttons in a page, with the name
genderand values ‘F’ and ‘M’. If you use thechoosemethod the following way:>>> browser.choose('gender', 'F')
Then you’re choosing the female gender.
-
click_link_by_href(href)¶ Clicks in a link by its
hrefattribute.
-
click_link_by_id(id)¶ Clicks in a link by id.
-
click_link_by_partial_href(partial_href)¶ Clicks in a link by looking for partial content of
hrefattribute.
-
click_link_by_partial_text(partial_text)¶ Clicks in a link by partial content of its text.
-
click_link_by_text(text)¶ Clicks in a link by its
text.
A
CookieManagerinstance.For more details, check the cookies manipulation section.
-
evaluate_script(script, *args)¶ Similar to
execute_scriptmethod.Executes javascript in the browser and returns the value of the expression.
- e.g.: ::
>>> assert 4 == browser.evaluate_script('2 + 2')
-
execute_script(script, *args)¶ Executes a given JavaScript in the browser.
- e.g.: ::
>>> browser.execute_script('document.getElementById("body").innerHTML = "<p>Hello world!</p>"')
-
fill(name, value)¶ Fill the field identified by
namewith the content specified byvalue.
-
fill_form(field_values, form_id=None, name=None)¶ 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_by(finder, selector, original_find=None, original_query=None, wait_time=None)¶ Wrapper for finding elements.
Must be attached to a class.
- Returns:
- ElementList
-
find_by_css(css_selector, wait_time=None)¶ Returns an instance of
ElementList, using a CSS selector to query the current page content.
-
find_by_id(id, wait_time=None)¶ Finds an element in 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)¶ Finds elements in current page by their name.
Returns 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)¶ Finds elements in current page by their text.
Returns an instance of
ElementList
-
find_by_value(value, wait_time=None)¶ Finds elements in current page by their value.
Returns an instance of
ElementList
-
find_by_xpath(xpath, original_find=None, original_query=None, wait_time=None)¶ Returns an instance of
ElementList, using a xpath selector to query the current page content.
-
find_link_by_href(href)¶ Find all elements of a given tag in current page.
Returns an instance of
ElementList
-
find_link_by_partial_href(partial_href)¶ Find links by looking for a partial
strin their href attribute.Returns an instance of
ElementList
-
find_link_by_partial_text(partial_text)¶ Find links by looking for a partial
strin their text.Returns an instance of
ElementList
-
find_link_by_text(text)¶ Find links querying for their text.
Returns an instance of
ElementList
-
find_option_by_text(text)¶ Finds
<option>elements by their text.Returns an instance of
ElementList
-
find_option_by_value(value)¶ Finds
<option>elements by their value.Returns an instance of
ElementList
-
forward()¶ Forward to the next URL in the browsing history.
If there is no URL to forward, this method does nothing.
-
get_alert(wait_time=None)¶ Changes the context for working with alerts and prompts.
For more details, check the docs about iframes, alerts and prompts
-
get_iframe(frame_reference)¶ Changes the context for working with iframes.
For more details, check the docs about iframes, alerts and prompts
-
html¶ Source of current page.
-
html_snapshot(name='', suffix='.html', encoding='utf-8')¶ Write the current html to a file.
-
is_element_not_present_by_css(css_selector, wait_time=None)¶ Verify if the element is not present in the current page by css, and wait the specified time in
wait_time.Returns True if the element is not present and False if is present.
-
is_element_not_present_by_id(id, wait_time=None)¶ Verify if the element is present in the current page by id, and wait the specified time in
wait_time.Returns True if the element is not present and False if is present.
-
is_element_not_present_by_name(name, wait_time=None)¶ Verify if the element is not present in the current page by name, and wait the specified time in
wait_time.Returns True if the element is not present and False if is present.
-
is_element_not_present_by_tag(tag, wait_time=None)¶ Verify if the element is not present in the current page by tag, and wait the specified time in
wait_time.Returns True if the element is not present and False if is present.
-
is_element_not_present_by_text(text, wait_time=None)¶ Verify if the element is not present in the current page by text, and wait the specified time in
wait_time.Returns True if the element is not present and False if is present.
-
is_element_not_present_by_value(value, wait_time=None)¶ Verify if the element is not present in the current page by value, and wait the specified time in
wait_time.Returns True if the element is not present and False if is present.
-
is_element_not_present_by_xpath(xpath, wait_time=None)¶ Verify if the element is not present in the current page by xpath, and wait the specified time in
wait_time.Returns True if the element is not present and False if is present.
-
is_element_present_by_css(css_selector, wait_time=None)¶ Verify if the element is present in the current page by css, and wait the specified time in
wait_time.Returns True if the element is present and False if is not present.
-
is_element_present_by_id(id, wait_time=None)¶ Verify if the element is present in the current page by id, and wait the specified time in
wait_time.Returns True if the element is present and False if is not present.
-
is_element_present_by_name(name, wait_time=None)¶ Verify if the element is present in the current page by name, and wait the specified time in
wait_time.Returns True if the element is present and False if is not present.
-
is_element_present_by_tag(tag, wait_time=None)¶ Verify if the element is present in the current page by tag, and wait the specified time in
wait_time.Returns True if the element is present and False if is not present.
-
is_element_present_by_text(text, wait_time=None)¶ Verify if the element is present in the current page by text, and wait the specified time in
wait_time.Returns True if the element is present and False if is not present.
-
is_element_present_by_value(value, wait_time=None)¶ Verify if the element is present in the current page by value, and wait the specified time in
wait_time.Returns True if the element is present and False if is not present.
-
is_element_present_by_xpath(xpath, wait_time=None)¶ Verify if the element is present in the current page by xpath, and wait the specified time in
wait_time.Returns True if the element is present and False if is not present.
-
is_text_present(text, wait_time=None)¶ Searchs for
textin the browser and wait the seconds specified inwait_time.Returns True if finds a match for the
textand False if not.
-
quit()¶ Quits the browser, closing its windows (if it has one).
After quit the browser, you can’t use it anymore.
-
reload()¶ Revisits the current URL
-
screenshot(name='', suffix='.png', full=False)¶ Takes a screenshot of the current page and saves it locally.
-
select(name, value)¶ Selects an
<option>element in an<select>element using thenameof the<select>and thevalueof the<option>.Example:
>>> browser.select("state", "NY")
-
title¶ Title of current page.
-
type(name, value, slowly=False)¶ Types the
valuein the field identified byname.It’s useful to test javascript events like keyPress, keyUp, keyDown, etc.
If
slowlyis True, this function returns an iterator which will type one character per iteration.
-
uncheck(name)¶ Unchecks a checkbox by its name.
Example:
>>> browser.uncheck("send-me-emails")
If you call
brower.uncheckn times, the checkbox keeps unchecked, it never get checked.To check a checkbox, take a look in the
checkmethod.
-
url¶ URL of current page.
-
visit(url)¶ Visits a given URL.
The
urlparameter is a string.
-