Skip to main content

Simpler webdriver API through a wrapper

Project description

Xpathwebdriver
==============

Python wrapper for interacting with Selenium through XPath and CSS
selectors. The main difference is that you can use use XPaths like:

::

//div/text()

Which will return you a string, somethin selenium does not support
easily. E.g. you could do:

::

from xpathwebdriver.simple_xpath_browser import SimpleXpathBrowser

browser = SimpleXpathBrowser()
browser.get_url('https://duckduckgo.com/')
browser.fill(".//*[@id='search_form_input_homepage']", 'xpathwebdriver\n')
# Using xpath that returns text
for idx, t in enumerate(browser.select_xpath('//div/text()')):
print(idx, t)
# Using css selector which returns elements
for idx, elem in enumerate(browser.select_css('.result__title')):
print(idx, elem.text)

Example
-------

Unit Test for web site.

.. code:: python

import unittest
from xpathwebdriver.simple_xpath_browser import SimpleXpathBrowser

class SearchEnginesDemo(unittest.TestCase):
def setUp(self):
# Get Xpath browser
self.browser = SimpleXpathBrowser()

def tearDown(self):
# Make sure we quit those webdrivers created in this specific "level of life"
del self.browser

def test_duckduckgo(self):
# Load a local page for the demo
self.browser.get_url('https://duckduckgo.com/')
# Type smoothtest and press enter
self.browser.fill(".//*[@id='search_form_input_homepage']", 'xpathwebdriver\n')

Install
-------

Make sure you installed selenium and webdriver (and that they are
working) You can test selenium with:

::

Then you can install this wrapper easily.

::

pip install xpathwebdriver

The selenium package requires you to download drivers

- Firefox: https://duckduckgo.com/mozilla/geckodriver/releases
- Chrome:
https://sites.google.com/a/chromium.org/chromedriver/downloads
- PhantomJs: http://phantomjs.org/download.html (has the driver
embedded)

Decompressed executables should be in yor PATH.

If you update python's ``webdriver`` package make sure you update
browsers and drivers.

Running the interactive shell
-----------------------------

Install ipython package (in ubuntu probably you can install
python-ipython package)

::

pip install ipython

You then can run from command line

::

xpathshell

Or opening a website:

::

xpathshell duckduckgo.com

To open https://duckduckgo.com

You will get an IPython interactive shell like:

::

XpathBrowser in 'b' or 'browser' variables
Current url: https://duckduckgo.com/
In [1]:

Useful links for working with XPath
-----------------------------------

- https://addons.mozilla.org/es/firefox/addon/firebug/
- https://addons.mozilla.org/es/firefox/addon/firepath/
- http://ricostacruz.com/cheatsheets/xpath.html
- http://xpath.alephzarro.com/content/cheatsheet.html

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xpathwebdriver-0.2.3.tar.gz (22.5 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page