S-Tool#

S-TOOL

https://user-images.githubusercontent.com/33047641/125023819-41998700-e09d-11eb-8076-7fad81f98f70.png

S-Tool is a utility module that provides helpful methods for interacting with Selenium WebDriver in Python

Installation#

Installation using PyPi#

pip install s-tool

Development Setup#

# Clone this repository
 git clone https://github.com/Python-World/s-tool.git

 # Go into the repository
 cd sel-kit

 # Install dependencies
 poetry config virtualenvs.in-project true
 poetry install

 # Start Poetry shell
 poetry shell

Usage#

  • Example Using Context Manager

"""Example code with context manager"""

from s_tool.core import SeleniumTools as SBot

with SBot(browser="firefox", headless=True) as self:
    self.get("https://example.com")
    sessionid = self.sessionid()
    url = self.url()
    cookies = self.cookies()

    # print sessionid,url,cookies
    print(f"\nurl     :   {url} \nsession :   {sessionid}\ncookies :   {cookies}\n")
  • Example Using class

from s_tool.core import SeleniumTools

class SBot(SeleniumTools):
    """Example Bot using s-tool"""

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

    def run(self):
        """Code to visit url and fetch cookies and basic info"""
        url ="https://example.com"
        self.get(url)
        sessionid = self.sessionid()
        url = self.url()
        cookies = self.cookies()

        # print sessionid,url,cookies
        print(f"\nurl     :   {url} \nsession :   {sessionid}\ncookies :   {cookies}\n")


bot = SBot(browser ="firefox", headless=True)  # change headless=False to run with gui mode
bot.run()
bot._close()

Methods#

Here are the public methods available in the SeleniumTools class:
  • get(): Loads a web page with the specified URL or local file or Html Content.

  • url(): Returns the current URL of the page.

  • text(): Returns the source code of the current page.

  • get_driver_sessionid(): Return an session id string.

  • get_locator(): Returns a WebDriver locator based on the given element identifier and identifier type.

  • get_element(): Returns a single element or a list of elements matching the given element identifier and identifier type.

  • fill(): Fills in form elements with the provided values.

  • wait_for_element(): Waits for an element to be present and visible on the page.

  • element_visibility(): Toggles the visibility of an element on the page.

  • cookies(): Returns all cookies present in the current session.

  • set_cookies(): Sets cookies for the current session using a dictionary of cookie key-value pairs.

  • click(): Clicks on the element identified by the given element identifier and identifier type.

  • press_multiple_keys(): Presses multiple keys simultaneously using Selenium.

  • execute_script(): Executes JavaScript code in the context of the current page.

  • parse(): Parses the HTML content of the current page and returns a list of elements matching the given tag name and attribute value.

Feel free to refer to the documentation for each method to understand their parameters and usage.

Contributing#

Contributions are welcome! If you find any issues or have suggestions for improvement, please create an issue or submit a pull request.

License#

This project is licensed under the MIT License.