Skip to main content

Module which allows to make xpath operations over string which represent xpath

Project description

https://travis-ci.com/yavorek/xpath-string.svg?branch=master https://img.shields.io/badge/python-3.4%2C%203.5%2C%203.6%2C%203.7-blue.svg https://img.shields.io/pypi/v/xpath-string.svg https://codecov.io/gh/yavorek/xpath-string/branch/master/graph/badge.svg

xpath-string

Simple module providing operations on Xpath string

Currently only addition of xpath is supported

Xpath Object

  • Initialization
    from xpath_string.xpath import Xpath
    
    xpath_object = Xpath('//some[@xpath="string"]')
  • Attributes:

    xpath - xpath string (type: ‘str’)

Xpath Adding

  • Xpath object + string

    Result of addition string to Xpath object is Xpath object. Adding string to Xpath object is the same as adding two strings.

    xpath_object = Xpath('//some[@xpath="string"]')
    string = '//div[@class="name"]'
    result = xpath_object + string
    
    # result == '//some[@xpath="string"]//div[@class="name"]'
    # result.xpath == '//some[@xpath="string"]//div[@class="name"]'

    Same situation is when Xpath object represents xpath string with OR operator

    xpath_object = Xpath('//some[@xpath="string"]|\\span')
    string = '//div[@class="name"]'
    
    result = xpath_object + string
    # result == '//some[@xpath="string"]|//span//div[@class="name"]'
    # result.xpath == '//some[@xpath="string"]|//span//div[@class="name"]'
  • Xpath object + Xpath object

    Result of addition Xpath object to Xpath object is Xpath Object.

    xpath_object_1 = Xpath('//some[@xpath="string"]')
    xpath_object_2 = Xpath('//div[@class="name"]')
    
    result = xpath_object_1 + xpath_object_2
    # result == '//some[@xpath="string"]//div[@class="name"]'
    # result.xpath == '//some[@xpath="string"]//div[@class="name"]'

    When at least one Xpath object has or operator in main part of xpath (not inside square brackets):

    xpath_object_1 = Xpath('//some[@xpath="string"]|//span')
    xpath_object_2 = Xpath('//div[@class="name"]')
    
    result_1 = xpath_object_1 + xpath_object_2
    # result_1 == '//some[@xpath="string"]//div[@class="name"|//span//div[@class="name"]'
    # result_1.xpath == '//some[@xpath="string"]//div[@class="name"|//span//div[@class="name"]'
    
    result_2 = xpath_object_2 + xpath_object_1
    # result_2 == '//div[@class="name"]//some[@xpath="string"]|//div[@class="name"]//span'
    # result_2.xpath == '//div[@class="name"]//some[@xpath="string"]|//div[@class="name"]//span'

Xpath.format()

The string built-in is overwrote. Xpath.format(‘some string’) is formatting xpath string attribute of a Object. It returns new Xpath object with ‘formatted’ xpath attribute.

Example:

xpath_object_1 = Xpath('//some[@xpath="{}"]')
xpath_object_2 = xpath_object_1.format('new')
# xpath_object_1 == Xpath('//some[@xpath="{}"]')
# xpath_object_2 == Xpath('//some[@xpath="new"]')

xpath_object_3 = Xpath('//some[@xpath="{sth}"]')
xpath_object_4 = xpath_object_1.format(sth='one')
# xpath_object_3 == Xpath('//some[@xpath="{sth}"]')
# xpath_object_4 == Xpath('//some[@xpath="one"]')

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

xpath_string-0.2.4.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xpath_string-0.2.4-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file xpath_string-0.2.4.tar.gz.

File metadata

  • Download URL: xpath_string-0.2.4.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.3

File hashes

Hashes for xpath_string-0.2.4.tar.gz
Algorithm Hash digest
SHA256 56f579d6dc8bff4249819138419c6d0740a8bbbfa4d23e9016cfd032af30c5d2
MD5 08af4333923551000348c3794fda485c
BLAKE2b-256 77c33283abede3d8d4d2ba803233aebb2cd98fe46dbd99e6eee3ae3761df334b

See more details on using hashes here.

File details

Details for the file xpath_string-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: xpath_string-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 8.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.3

File hashes

Hashes for xpath_string-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c2426c8eb1c1bbaf761f40d23b0419439af9b1e66ea13a59c1f651be33adb2e1
MD5 026e7fa486636bbf2e02dabd101505ac
BLAKE2b-256 9456b0fd8b7207997b643cee61875143ae69ab83250b0f0e65a78495fa1a43d9

See more details on using hashes here.

Supported by

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