nerodia package

Submodules

nerodia.after_hooks module

class nerodia.after_hooks.AfterHooks(browser)[source]

Bases: object

After hooks are blocks that run after certain browser events. They are generally used to ensure application under test does not encounter any error and are automatically executed after following events:

  1. Open URL.
  2. Refresh page.
  3. Click, double-click or right-click on element.
  4. Alert closing.
add(method=None, after_hook=None)[source]

Adds new after hook :param method: callable method :param after_hook: callable object

Example:

from __future__ import print_function browser.after_hooks.add(method=lambda b: ‘Server Error’ in browser.text and print(‘Application exception or 500 error!’) browser.goto(‘watir.github.io/404’) #=> ‘Application exception or 500 error!’

delete(after_hook)[source]

Deletes after hook :param after_hook: hook to delete

Example:

from __future__ import print_function browser.after_hooks.add(method=lambda b: ‘Server Error’ in browser.text and print(‘Application exception or 500 error!’) browser.goto(‘watir.github.io/404’) #=> ‘Application exception or 500 error!’ browser.after_hooks.delete(browser.after_hooks[0]) browser.refresh

run()[source]

Runs after hooks

without(**kwds)[source]

Executes a block without running error after hooks

Example:
with browser.after_hooks.without():
self.browser.element(name=’new_user_button’).click()

nerodia.alert module

class nerodia.alert.Alert(browser)[source]

Bases: nerodia.wait.wait.Waitable

assert_exists()[source]
close()[source]

Closes alert or cancels prmopts/confirms

Example:

browser.alert.close() browser.alert.exists #=> False

exists

Returns True if alert, confirm, or prompt is present and False otherwise :rtype: bool

Example:

browser.alert.exists #=> True

ok()[source]

Closes alert or accepts prompts/confirms

Example:

browser.alert.ok browser.alert.exists #=> False

present

Returns True if alert, confirm, or prompt is present and False otherwise :rtype: bool

Example:

browser.alert.exists #=> True

selector_string
set(value)[source]

Enters text to prompt :param value: keys to send

Example:

browser.alert.set(‘Text for prompt’) browser.alert.ok()

text

Returns the text of the alert :rtype: str

Example:

browser.alert.text #=> ‘ok’

wait_for_exists()[source]

nerodia.browser module

class nerodia.browser.Browser(browser='chrome', *args, **kwargs)[source]

Bases: nerodia.container.Container, nerodia.has_window.HasWindow, nerodia.wait.wait.Waitable, nerodia.elements.scroll.Scrolling

alert

Handles Javascript alerts, confirms and prompts :rtype: nerodia.alert.Alert

back()[source]

Navigates back in history

browser
close()[source]

Closes the browser

cookies

Handles cookies :rtype: nerodia.cookies.Cookies

execute_script(script, *args)[source]

Executes JavaScript snippet :param script: Javascript Snippet to execute :type script: str :param args: Arguments will be available in the given script in the ‘arguments’ pseudo-array :return: result of script

exist

True if browser is not closed and False otherwise :rtype: bool

exists

True if browser is not closed and False otherwise :rtype: bool

forward()[source]

Navigates forward in history

goto(uri)[source]

Goes to the given URL :param uri: the URL :type uri: str :return: the url you end up at :rtype: str

html

Returns HTML code of the current page :rtype: str

locate()[source]
locator_namespace

Whether the locators should be used from a different namespace. Defaults to nerodia.locators :return:

name

Returns the browser name :rtype: str

quit()

Closes the browser

ready_state

Returns the readyState of the document :rtype: str

refresh()[source]

Refreshes the current page

screenshot

Handles screenshots of current pages :rtype: nerodia.screenshot.Screenshot

selector_string()

x.__repr__() <==> repr(x)

send_keys(*args)[source]

Sends sequence of keystrokes to currently active element :param args: keystrokes

static start(url, browser='chrome', *args, **kwargs)[source]

Creates a Browser instance :param url: url to navigate to after starting browser :type url: str :param browser: firefox, ie, chrome, remote or Selenium WebDriver instance :type browser: selenium.webdriver.remote.webdriver.WebDriver or str :param args: args passed to the underlying driver :param kwargs: kwargs passed to the underlying driver

status

Returns the text of the status bar :return:

text

Returns the text of the page body :return:

timer
title

Returns the title of the current page :rtype: str

url

Returns the URL of the current page :rtype: str

wait(timeout=5)[source]

Waits until the readyState of document is complete, raises a TimeoutException if timeout is exceeded :param timeout: time to wait :type timeout: int

wd

See also

See nerodia.container.Container for all possible element containers.

See also

See nerodia.has_window.HasWindow for accessing windows.

See also

See nerodia.wait.wait.Waitable for wait methods.

nerodia.container module

class nerodia.container.Container[source]

Bases: object

abbr(*args, **kwargs)[source]
abbrs(*args, **kwargs)[source]
address(*args, **kwargs)[source]
addresses(*args, **kwargs)[source]
area(*args, **kwargs)[source]
areas(*args, **kwargs)[source]
article(*args, **kwargs)[source]
articles(*args, **kwargs)[source]
aside(*args, **kwargs)[source]
asides(*args, **kwargs)[source]
audio(*args, **kwargs)[source]
audios(*args, **kwargs)[source]
b(*args, **kwargs)[source]
base(*args, **kwargs)[source]
bases(*args, **kwargs)[source]
bdi(*args, **kwargs)[source]
bdis(*args, **kwargs)[source]
bdo(*args, **kwargs)[source]
bdos(*args, **kwargs)[source]
blockquote(*args, **kwargs)[source]
blockquotes(*args, **kwargs)[source]
body(*args, **kwargs)[source]
bodys(*args, **kwargs)[source]
br(*args, **kwargs)[source]
brs(*args, **kwargs)[source]
bs(*args, **kwargs)[source]
button(*args, **kwargs)[source]
buttons(*args, **kwargs)[source]
canvas(*args, **kwargs)[source]
canvases(*args, **kwargs)[source]
caption(*args, **kwargs)[source]
captions(*args, **kwargs)[source]
checkbox(*args, **kwargs)[source]
checkboxes(*args, **kwargs)[source]
circle(*args, **kwargs)[source]
circles(*args, **kwargs)[source]
cite(*args, **kwargs)[source]
cites(*args, **kwargs)[source]
code(*args, **kwargs)[source]
codes(*args, **kwargs)[source]
col(*args, **kwargs)[source]
colgroup(*args, **kwargs)[source]
colgroups(*args, **kwargs)[source]
cols(*args, **kwargs)[source]
data(*args, **kwargs)[source]
datalist(*args, **kwargs)[source]
datalists(*args, **kwargs)[source]
datas(*args, **kwargs)[source]
date_field(*args, **kwargs)[source]
date_fields(*args, **kwargs)[source]
date_time_field(*args, **kwargs)[source]
date_time_fields(*args, **kwargs)[source]
dd(*args, **kwargs)[source]
dds(*args, **kwargs)[source]
defs(*args, **kwargs)[source]
defss(*args, **kwargs)[source]
delete(*args, **kwargs)[source]
deletes(*args, **kwargs)[source]
desc(*args, **kwargs)[source]
descs(*args, **kwargs)[source]
details(*args, **kwargs)[source]
detailses(*args, **kwargs)[source]
dfn(*args, **kwargs)[source]
dfns(*args, **kwargs)[source]
dialog(*args, **kwargs)[source]
dialogs(*args, **kwargs)[source]
div(*args, **kwargs)[source]
divs(*args, **kwargs)[source]
dl(*args, **kwargs)[source]
dls(*args, **kwargs)[source]
dt(*args, **kwargs)[source]
dts(*args, **kwargs)[source]
element(*args, **kwargs)[source]
elements(*args, **kwargs)[source]
ellipse(*args, **kwargs)[source]
ellipses(*args, **kwargs)[source]
em(*args, **kwargs)[source]
embed(*args, **kwargs)[source]
embeds(*args, **kwargs)[source]
ems(*args, **kwargs)[source]
field_set(*args, **kwargs)
field_sets(*args, **kwargs)
fieldset(*args, **kwargs)[source]
fieldsets(*args, **kwargs)[source]
figcaption(*args, **kwargs)[source]
figcaptions(*args, **kwargs)[source]
figure(*args, **kwargs)[source]
figures(*args, **kwargs)[source]
file_field(*args, **kwargs)[source]
file_fields(*args, **kwargs)[source]
font(*args, **kwargs)[source]
fonts(*args, **kwargs)[source]
footer(*args, **kwargs)[source]
footers(*args, **kwargs)[source]
foreign_object(*args, **kwargs)[source]
foreign_objects(*args, **kwargs)[source]
form(*args, **kwargs)[source]
forms(*args, **kwargs)[source]
frame(*args, **kwargs)[source]
frames(*args, **kwargs)[source]
frameset(*args, **kwargs)[source]
framesets(*args, **kwargs)[source]
g(*args, **kwargs)[source]
gs(*args, **kwargs)[source]
h1(*args, **kwargs)[source]
h1s(*args, **kwargs)[source]
h2(*args, **kwargs)[source]
h2s(*args, **kwargs)[source]
h3(*args, **kwargs)[source]
h3s(*args, **kwargs)[source]
h4(*args, **kwargs)[source]
h4s(*args, **kwargs)[source]
h5(*args, **kwargs)[source]
h5s(*args, **kwargs)[source]
h6(*args, **kwargs)[source]
h6s(*args, **kwargs)[source]
head(*args, **kwargs)[source]
header(*args, **kwargs)[source]
headers(*args, **kwargs)[source]
heads(*args, **kwargs)[source]
hgroup(*args, **kwargs)[source]
hgroups(*args, **kwargs)[source]
hidden(*args, **kwargs)[source]
hiddens(*args, **kwargs)[source]
hr(*args, **kwargs)[source]
hrs(*args, **kwargs)[source]
html(*args, **kwargs)[source]
htmls(*args, **kwargs)[source]
iframe(*args, **kwargs)[source]
iframes(*args, **kwargs)[source]
image(*args, **kwargs)
images(*args, **kwargs)
img(*args, **kwargs)[source]
imgs(*args, **kwargs)[source]
input(*args, **kwargs)[source]
inputs(*args, **kwargs)[source]
ins(*args, **kwargs)[source]
inses(*args, **kwargs)[source]
ital(*args, **kwargs)[source]
itals(*args, **kwargs)[source]
kbd(*args, **kwargs)[source]
kbds(*args, **kwargs)[source]
label(*args, **kwargs)[source]
labels(*args, **kwargs)[source]
legend(*args, **kwargs)[source]
legends(*args, **kwargs)[source]
li(*args, **kwargs)[source]
line(*args, **kwargs)[source]
linear_gradient(*args, **kwargs)[source]
linear_gradients(*args, **kwargs)[source]
lines(*args, **kwargs)[source]
lis(*args, **kwargs)[source]
main(*args, **kwargs)[source]
mains(*args, **kwargs)[source]
map(*args, **kwargs)[source]
maps(*args, **kwargs)[source]
mark(*args, **kwargs)[source]
marker(*args, **kwargs)[source]
markers(*args, **kwargs)[source]
marks(*args, **kwargs)[source]
meta(*args, **kwargs)[source]
metadata(*args, **kwargs)[source]
metadatas(*args, **kwargs)[source]
metas(*args, **kwargs)[source]
meter(*args, **kwargs)[source]
meters(*args, **kwargs)[source]
nav(*args, **kwargs)[source]
navs(*args, **kwargs)[source]
noscript(*args, **kwargs)[source]
noscripts(*args, **kwargs)[source]
object(*args, **kwargs)[source]
objects(*args, **kwargs)[source]
ol(*args, **kwargs)[source]
ols(*args, **kwargs)[source]
optgroup(*args, **kwargs)[source]
optgroups(*args, **kwargs)[source]
option(*args, **kwargs)[source]
options(*args, **kwargs)[source]
output(*args, **kwargs)[source]
outputs(*args, **kwargs)[source]
p(*args, **kwargs)[source]
param(*args, **kwargs)[source]
params(*args, **kwargs)[source]
path(*args, **kwargs)[source]
paths(*args, **kwargs)[source]
pattern(*args, **kwargs)[source]
patterns(*args, **kwargs)[source]
polygon(*args, **kwargs)[source]
polygons(*args, **kwargs)[source]
polyline(*args, **kwargs)[source]
polylines(*args, **kwargs)[source]
pre(*args, **kwargs)[source]
pres(*args, **kwargs)[source]
progress(*args, **kwargs)[source]
progresses(*args, **kwargs)[source]
ps(*args, **kwargs)[source]
q(*args, **kwargs)[source]
qs(*args, **kwargs)[source]
radial_gradient(*args, **kwargs)[source]
radial_gradients(*args, **kwargs)[source]
radio(*args, **kwargs)[source]
radio_set(*args, **kwargs)[source]
radios(*args, **kwargs)[source]
rp(*args, **kwargs)[source]
rps(*args, **kwargs)[source]
rt(*args, **kwargs)[source]
rts(*args, **kwargs)[source]
rubies(*args, **kwargs)[source]
ruby(*args, **kwargs)[source]
s(*args, **kwargs)[source]
samp(*args, **kwargs)[source]
samps(*args, **kwargs)[source]
script(*args, **kwargs)[source]
scripts(*args, **kwargs)[source]
section(*args, **kwargs)[source]
sections(*args, **kwargs)[source]
select(*args, **kwargs)[source]
select_list(*args, **kwargs)
select_lists(*args, **kwargs)
selects(*args, **kwargs)[source]
small(*args, **kwargs)[source]
smalls(*args, **kwargs)[source]
source(*args, **kwargs)[source]
sources(*args, **kwargs)[source]
span(*args, **kwargs)[source]
spans(*args, **kwargs)[source]
ss(*args, **kwargs)[source]
stop(*args, **kwargs)[source]
stops(*args, **kwargs)[source]
strong(*args, **kwargs)[source]
strongs(*args, **kwargs)[source]
style(*args, **kwargs)[source]
styles(*args, **kwargs)[source]
sub(*args, **kwargs)[source]
subs(*args, **kwargs)[source]
summaries(*args, **kwargs)[source]
summary(*args, **kwargs)[source]
sup(*args, **kwargs)[source]
sups(*args, **kwargs)[source]
svg(*args, **kwargs)[source]
svgs(*args, **kwargs)[source]
switch(*args, **kwargs)[source]
switches(*args, **kwargs)[source]
symbol(*args, **kwargs)[source]
symbols(*args, **kwargs)[source]
table(*args, **kwargs)[source]
tables(*args, **kwargs)[source]
tbody(*args, **kwargs)[source]
tbodys(*args, **kwargs)[source]
td(*args, **kwargs)[source]
tds(*args, **kwargs)[source]
template(*args, **kwargs)[source]
templates(*args, **kwargs)[source]
text_field(*args, **kwargs)[source]
text_fields(*args, **kwargs)[source]
text_path(*args, **kwargs)[source]
text_paths(*args, **kwargs)[source]
textarea(*args, **kwargs)[source]
textareas(*args, **kwargs)[source]
tfoot(*args, **kwargs)[source]
tfoots(*args, **kwargs)[source]
th(*args, **kwargs)[source]
thead(*args, **kwargs)[source]
theads(*args, **kwargs)[source]
ths(*args, **kwargs)[source]
time(*args, **kwargs)[source]
times(*args, **kwargs)[source]
title(*args, **kwargs)[source]
titles(*args, **kwargs)[source]
tr(*args, **kwargs)[source]
track(*args, **kwargs)[source]
tracks(*args, **kwargs)[source]
trs(*args, **kwargs)[source]
tspan(*args, **kwargs)[source]
tspans(*args, **kwargs)[source]
u(*args, **kwargs)[source]
ul(*args, **kwargs)[source]
uls(*args, **kwargs)[source]
us(*args, **kwargs)[source]
var(*args, **kwargs)[source]
vars(*args, **kwargs)[source]
video(*args, **kwargs)[source]
videos(*args, **kwargs)[source]
view(*args, **kwargs)[source]
views(*args, **kwargs)[source]
wbr(*args, **kwargs)[source]
wbrs(*args, **kwargs)[source]

nerodia.cookies module

class nerodia.cookies.Cookies(driver)[source]

Bases: object

add(name, value, **kwargs)[source]

Adds new cookie

Example:

browser.cookies.add(‘my_session’, ‘BAh7B0kiD3Nlc3Npb25faWQGOgZFRkk’, domain=’mysite.com’)

clear()[source]

Deletes all cookies

delete(name)[source]

Deletes cookie by given name

load(file='.cookies')[source]

Loads cookies from file

Parameters:file – file path
Example:

browser.cookies.load(‘.cookies’)

save(file='.cookies')[source]

Save cookies to file

Parameters:file – file path
Example:

browser.cookies.save(‘.cookies’)

to_list

nerodia.element_collection module

class nerodia.element_collection.ElementCollection(query_scope, selector)[source]

Bases: nerodia.locators.class_helpers.ClassHelpers, nerodia.js_snippet.JSSnippet

browser

Returns the browser of the current query_scope

Return type:nerodia.browser.Browser
build()[source]
eql(other)

Returns true if two element collections are equal.

Parameters:other – other collection
Return type:bool
Example:

browser.select_list(name=’new_user_languages’).options == browser.select_list(id=’new_user_languages’).options #=> True

browser.select_list(name=;new_user_role’).options == browser.select_list(id=’new_user_languages’).options #=> false

is_empty

Returns True if no elements are found

Example:

browser.select_list(name=’new_user_languages’).options(class_name=’not_here’).is_empty

Example:

browser.select_list(name=’new_user_languages’).options(id=’danish’).is_empty

Returns:True if no elements are found
Return type:bool
locate()[source]

Locate all elements and return self

Return type:ElementCollection
to_list

This collection as a list

Return type:list[nerodia.elements.element.Element]

nerodia.has_window module

class nerodia.has_window.HasWindow[source]

Bases: object

original_window

Returns original window if defined, current window if not :rtype: Window

Example:

browser.window(title=’closeable window’).use() browser.original_window.use()

window(*args, **kwargs)[source]

Returns browser window :rtype: Window

Example:

browser.window(title=’closeable window’)

windows(*args, **kwargs)[source]

Returns browser windows list :rtype: list[Window]

Example:

browser.windows(title=’closeable window’)

nerodia.logger module

class nerodia.logger.Logger[source]

Bases: object

deprecate(old, new, reference=None, ids=None)[source]
filename
ignore(*ids)[source]
level
warn(msg, ids=None, *args, **kwargs)
warning(msg, ids=None, *args, **kwargs)[source]

nerodia.screenshot module

class nerodia.screenshot.Screenshot(browser)[source]

Bases: object

base64()[source]

Represents screenshot as Base64 encoded string :rtype: str

Example:

browser.screenshot.base64 #=> ‘7HWJ43tZDscPleeUuPW6HhN3x+z7vU/lufmH0qNTtTum94IBWMT46evImci1vnFGT’

png()[source]

Represents screenshot as PNG image string :rtype: str

Example:

browser.screenshot.png #=> ‘•ÇŒ@1À7

(Edb² L’

save(path)[source]

Saves screenshot to given path :param path: file path

Example:

browser.screenshot.save(‘screenshot.png’)

nerodia.window module

class nerodia.window.Dimension(width=None, height=None)[source]

Bases: object

height
width
class nerodia.window.Point(x=None, y=None)[source]

Bases: object

x
y
class nerodia.window.Window(browser, selector)[source]

Bases: nerodia.wait.wait.Waitable

assert_exists()[source]
close()[source]

Closes the window

eql(other)

Returns True if two windows are equal :param other: the other window :rtype: bool

Example:

browser.window(index=0) == browser.window(index=1) #=> False

exist

Returns True if the window exists :rtype: bool

exists

Returns True if the window exists :rtype: bool

handle
is_current

Returns True if the window is current

Example:

browse.window.is_current

Return type:bool
locate()[source]
maximize()[source]

Maximizes window

Example:

browser.window().maximize()

move_to(x, y)[source]

Moves window to given x and y coordinates :param x: horizontal position :param y: vertical position

Example:

browser.window().move_to(300, 200)

position

Returns window position :rtype: dict

Example:

browser.window().position #=> {x: 92, y: 76}

present

Returns True if the window exists :rtype: bool

resize_to(width, height)[source]

Resizes window to given width and height :param width: width to resize to :param height: height to resize to

Example:

browser.window().resize_to(1600, 1200)

selector_string
size

Returns window size :rtype: dict

Example:

browser.window().size #=> {width: 1600, height: 1200}

title

Returns the window title :rtype: str

unuse()[source]

Returns to the original window

Example:

window = browser.window(title=’closeable window’).use() window.unuse() :rtype: Window

url

Returns the window URL :rtype: str

use()[source]

Switches to given window

Example:

browser.window(title=’closeable window’).use() :rtype: Window

wait_for_exists()[source]