Metadata-Version: 1.0
Name: xpathwebdriver
Version: 0.2.3
Summary: Simpler webdriver API through a wrapper
Home-page: https://github.com/joaduo/xpathwebdriver
Author: Joaquin Duo
Author-email: joaduo@gmail.com
License: MIT
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
        
Keywords: testing,automation,web,unittest,webdriver,selenium
Platform: UNKNOWN
