{ "info": { "author": "Vladyslav Ovchynnykov", "author_email": "ovd4mail@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "===================\nSelenium extensions\n===================\n\n.. image:: https://img.shields.io/pypi/pyversions/selenium_extensions.svg\n :target: https://pypi.python.org/pypi/selenium_extensions\n :alt: Supported python versions\n\n.. image:: https://img.shields.io/pypi/v/selenium_extensions.svg\n :target: https://pypi.python.org/pypi/selenium_extensions\n :alt: PyPI version\n\n.. image:: https://readthedocs.org/projects/selenium_extensions/badge/?version=latest\n :target: https://selenium_extensions.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://pyup.io/repos/github/pythad/selenium_extensions/shield.svg\n :target: https://pyup.io/repos/github/pythad/selenium_extensions/\n :alt: Updates\n\n.. image:: https://img.shields.io/github/license/pythad/selenium_extensions.svg\n :target: https://pypi.python.org/pypi/selenium_extensions\n :alt: License\n\n\n\nTools that will make writing tests, bots and scrapers using Selenium much easier\n\n\n* Free software: MIT license\n* Documentation: https://selenium-extensions.readthedocs.io.\n\n************\nInstallation\n************\n\n.. code-block:: console\n\n $ pip install selenium_extensions\n\n*******\nExample\n*******\n\nCreating a headless Selenium bot and filling in a form is as easy as\n\n.. code-block:: python\n\n from selenium.webdriver.common.by import By\n from selenium_extensions.core import SeleniumDriver\n\n\n class MyBot(SeleniumDriver):\n\n def __init__(self, *args, **kwargs):\n super().__init__(*args, **kwargs)\n\n def goto_google(self):\n self.driver.get('https://google.com')\n searchbox_locator = (By.ID, 'lst-ib')\n self.wait_for_element_to_be_present(searchbox_locator)\n self.populate_text_field(searchbox_locator, 'query')\n\n\n bot = MyBot(browser='chrome', executable_path='/usr/bin/chromedriver', headless=True)\n bot.goto_google()\n bot.shut_down()\n\nOr do you want to wait until you will be redirected from login page? ``selenium_extensions`` makes it easy\n\n.. code-block:: python\n\n from selenium_extensions.helpers import wait_for_function_truth\n from selenium_extensions.helpers import element_has_gone_stale\n\n\n ...\n login_btn = self.driver.find_element_by_css_selector(\n \"button.submit.EdgeButton.EdgeButton--primary\")\n login_btn.click()\n\n # Wait to be redirected\n wait_for_function_truth(element_has_gone_stale, login_btn)\n\n********\nFeatures\n********\n\n* ``selenium_extensions.drivers.chrome_driver`` - extended Chrome webdriver class with built-in support for headless mode and rendering webpages without media.\n* ``selenium_extensions.drivers.firefox_driver`` - extended Firefox webdriver class with built-in support for headless mode and rendering webpages without media.\n* ``selenium_extensions.core.scroll`` - scrolls the current page or the Selenium WebElement if one is provided.\n* ``selenium_extensions.core.element_is_present`` - shortcut to check if the element is present on the current page.\n* ``selenium_extensions.core.wait_for_element_to_be_clickable`` - waits for element described by `element_locator` to be clickable.\n* ``selenium_extensions.helpers.element_has_gone_stale`` - checks if element has gone stale.\n* ``selenium_extensions.core.SeleniumDriver`` - class with all necessary tools in one place. User's classes should inherit from this class and initialize it using ``super()``. After this their class will have ``driver`` attribute and all the methods ready to go.\n\nand more.\n\n=======\nHistory\n=======\n\n0.1.0 (2017-08-28)\n------------------\n\n* First release on PyPI.\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pythad/selenium_extensions", "keywords": "selenium_extensions", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "selenium_extensions", "package_url": "https://pypi.org/project/selenium_extensions/", "platform": "", "project_url": "https://pypi.org/project/selenium_extensions/", "project_urls": { "Homepage": "https://github.com/pythad/selenium_extensions" }, "release_url": "https://pypi.org/project/selenium_extensions/0.1.2/", "requires_dist": null, "requires_python": "", "summary": "Tools that will make writing tests, bots and scrapers using Selenium much easier", "version": "0.1.2" }, "last_serial": 3142843, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "e8a141391c4a9e9281bf77e812311a9f", "sha256": "408ec4dc3e7a8769a36dd3b858190be9aa17cf2cb4e4e727d53739bccba82f1e" }, "downloads": -1, "filename": "selenium_extensions-0.1.0.tar.gz", "has_sig": false, "md5_digest": "e8a141391c4a9e9281bf77e812311a9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21168, "upload_time": "2017-08-28T10:46:46", "url": "https://files.pythonhosted.org/packages/d4/fa/6d4686162fe42d3f1c1042680d11579ec55cab9e2d7980f119433e8250b1/selenium_extensions-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "a1a313a2478af8e4a00059b89a9ba6e0", "sha256": "4be843ced8879ccee623c9c6cb807eab4ad7b3dd42ac7c7ffbf73cb75647b38f" }, "downloads": -1, "filename": "selenium_extensions-0.1.1.tar.gz", "has_sig": false, "md5_digest": "a1a313a2478af8e4a00059b89a9ba6e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21328, "upload_time": "2017-08-30T08:45:17", "url": "https://files.pythonhosted.org/packages/57/e1/0afa1cb917f8a190d76f218591fba78926085a59ccd97a40d12e38bf4bce/selenium_extensions-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "c4a40e825d4c2ab6b6c0745f23cad7d9", "sha256": "f886c8f0f186a98cfcfc7545d10905a38040bb59b39c87efa2365dba795ed011" }, "downloads": -1, "filename": "selenium_extensions-0.1.2.tar.gz", "has_sig": false, "md5_digest": "c4a40e825d4c2ab6b6c0745f23cad7d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21588, "upload_time": "2017-09-02T10:01:59", "url": "https://files.pythonhosted.org/packages/04/f8/6ae352eb71fc7c86601d1de25d9f385100801c9dfa1a1a8cda3d3f69ce06/selenium_extensions-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c4a40e825d4c2ab6b6c0745f23cad7d9", "sha256": "f886c8f0f186a98cfcfc7545d10905a38040bb59b39c87efa2365dba795ed011" }, "downloads": -1, "filename": "selenium_extensions-0.1.2.tar.gz", "has_sig": false, "md5_digest": "c4a40e825d4c2ab6b6c0745f23cad7d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21588, "upload_time": "2017-09-02T10:01:59", "url": "https://files.pythonhosted.org/packages/04/f8/6ae352eb71fc7c86601d1de25d9f385100801c9dfa1a1a8cda3d3f69ce06/selenium_extensions-0.1.2.tar.gz" } ] }