Saturday, July 13, 2013

Selenium python module and cookies.

Today I will show how to deal with cookies and Firefox.

Selenium Python Client Driver is a Python language binding for Selenium Remote Control.

You can read more about this module here.

You can find some examples , but most of webpages working with cookies.So let's make one simple tutorial.

The next source code is very simple and most of the python users knows what means.

$ python 
Python 2.7.3 (default, Jan  2 2013, 16:53:07) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from selenium import webdriver
>>> from selenium.common.exceptions import NoSuchElementException
>>> from selenium.webdriver.common.keys import Keys
>>> browser = webdriver.Firefox()
>>> browser.get("")
>>> browser.get("")

The next source codes will get your cookies from the webpage.

>>> for cookie in browser.get_cookies():
...     print(cookie['name'] + ' --> your cookie data ' + cookie['value'])
datr --> your cookie data 
locale --> your cookie data 
xs --> your cookie data 
s --> your cookie data 
lu --> your cookie data 
fr --> your cookie data 
csm --> your cookie data 
c_user --> your cookie data 
act --> your cookie data 
x-src --> your cookie data 
sub --> your cookie data 
p --> your cookie data 
presence --> your cookie data 

You can deal with all functions of selenium python module , see :

>>> dir(browser)
['NATIVE_EVENTS_ALLOWED', '__class__', '__delattr__', '__dict__', '__doc__', 
'__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__'
, '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__'
, '__subclasshook__', '__weakref__', '_is_remote', '_unwrap_value', '_wrap_value'
, 'add_cookie', 'application_cache', 'back', 'binary', 'capabilities', 'close', 
'command_executor', 'create_web_element', 'current_url', 'current_window_handle'
, 'delete_all_cookies', 'delete_cookie', 'desired_capabilities', 'error_handler'
, 'execute', 'execute_async_script', 'execute_script', 'find_element', 
'find_element_by_class_name', 'find_element_by_css_selector', 'find_element_by_id'
, 'find_element_by_link_text', 'find_element_by_name', 'find_element_by_partial_link_text'
, 'find_element_by_tag_name', 'find_element_by_xpath', 'find_elements', 
'find_elements_by_class_name', 'find_elements_by_css_selector', 'find_elements_by_id',
 'find_elements_by_link_text', 'find_elements_by_name', 'find_elements_by_partial_link_text'
 , 'find_elements_by_tag_name', 'find_elements_by_xpath', 'firefox_profile', 'forward',
  'get', 'get_cookie', 'get_cookies', 'get_screenshot_as_base64', 'get_screenshot_as_file'
  , 'get_window_position', 'get_window_size', 'implicitly_wait', 'is_online', 
  'maximize_window', 'name', 'orientation', 'page_source', 'profile', 'quit', 'refresh'
  , 'save_screenshot', 'session_id', 'set_page_load_timeout', 'set_script_timeout', 
  'set_window_position', 'set_window_size', 'start_client', 'start_session', 'stop_client'
  , 'switch_to_active_element', 'switch_to_alert', 'switch_to_default_content', 
  'switch_to_frame', 'switch_to_window', 'title', 'window_handles']

This module can be a way for you to testing your webpages , save cookie , restore and more...

Also , if you know networking development also you can use scapy module to test more.

I hope will like this simple tutorial about python.