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
==============
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
Release history Release notifications | RSS feed
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)