splinter - python test framework for web applications

Overview
https://secure.travis-ci.org/cobrateam/splinter.svg?branch=master

splinter - python tool for testing web applications

splinter is an open source tool for testing web applications using Python. It lets you automate browser actions, such as visiting URLs and interacting with their items.

Sample code

from splinter import Browser

browser = Browser()
browser.visit('http://google.com')
browser.fill('q', 'splinter - python acceptance testing for web applications')
browser.find_by_name('btnK').click()

if browser.is_text_present('splinter.readthedocs.io'):
    print("Yes, the official website was found!")
else:
    print("No, it wasn't found... We need to improve our SEO techniques")

browser.quit()

Note: if you don't provide any driver argument to the Browser function, firefox will be used (Browser function documentation).

Changelog

First steps

Splinter open source project

Documentation

External links

Comments
  • Browser instance on a network with proxy

    Browser instance on a network with proxy

    Hi.

    I'm trying to run Splinter in a Windows 7 machine, in a local network that needs a proxy.

    When a new instance of the Browser() is created in the python shell, a firefox window pop-ups with the profile different than the one that I use. So, this new instance and profile don't have none of the configs for proxy.

    This is the message generated by the "browser = Browser()" code:

    Traceback (most recent call last): File "C:\Users\cassio.nandi\Desktop\splinter\exemplo.py", line 3, in browser = Browser() File "C:\Python27\lib\site-packages\splinter\browser.py", line 46, in Browser return driver(_args, *_kwargs) File "C:\Python27\lib\site-packages\splinter\driver\webdriver\firefox.py", line 23, in init self.driver = Firefox(firefox_profile) File "C:\Python27\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 47, in init desired_capabilities=DesiredCapabilities.FIREFOX) File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 61, in init self.start_session(desired_capabilities, browser_profile) File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 98, in start_session 'desiredCapabilities': desired_capabilities, File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 144, in execute self.error_handler.check_response(response) File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 100, in check_response raise exception_class(value) WebDriverException: Message: '\n\nERRO: A URL solicitada não pode ser recuperada\n\n\n

    ERRO

    \n

    A URL solicitada não pode ser recuperada

    \n
    \n

    \nNa tentativa de recuperar a URL:\nhttp://127.0.0.1:51372/hub/session\n

    \nO seguinte erro foi encontrado:\n

      \n
    • \n\nProibido o Acesso.\n\n

      \nO controle de acessos impediu sua requisição.\nCaso você não concorde com isso, por favor, \ncontate seu provedor de serviços, ou o administrador de sistemas.\n

    \n

    \n\n\n
    \n
    \n
    \nGenerated Tue, 08 Nov 2011 18:27:08 GMT by proxy (squid/2.6.STABLE21)\n
    \n \n'

    opened by cassionandi 40
  • "visit" API call looks to access the url twice

    Hi,

    I started a django dev server, and accessed the top page of the server using by django shell:

    from splinter.browser import Browser
    browser = Browser('phantomjs')
    browser.visit('http://localhost:8080/')
    

    server log is:

    [04/Jul/2013 20:31:44] "GET / HTTP/1.1" 200 0
    [04/Jul/2013 20:31:44] "GET / HTTP/1.1" 200 0
    

    Why did the "visit" method call access the page twice? It looks bit strange to me.

    thanks.

    opened by kakusuke 30
  • Stabilize tests

    Stabilize tests

    • Nicely skip tests affected by Selenium defect #4814 (the skips will fall away as soon as Selenium is updated)
    • Do a hard sleep before trying to find asynchronously added elements (again to avoid hitting #4814)
    opened by medwards 19
  • Unable to chain find_by_css().find_by_text() with 0.9.0

    Unable to chain find_by_css().find_by_text() with 0.9.0

    https://github.com/cobrateam/splinter/issues/426 seems to have resurfaced in 0.9.0.

    With 0.8.0, browser.find_by_css(".onboarding-modal").find_by_text("Slack") finds one element on my site, but 0.9.0 returns none.

    I think https://github.com/cobrateam/splinter/commit/1cfd05086a5ccb1c3297072e2bc0e713e71b2156 is the commit that changed this behavior.

    I can try to find a reproduceable example on a public site if necessary.

    bug easy good first issue hacktoberfest NeedsInvestigation 
    opened by jacebrowning 17
  • transfer project ownership to jazzband

    transfer project ownership to jazzband

    Hello @jsfehler . Cobrateam seems dead and splinter does not see much activity. Would you please consider transferring ownership to Jazzband? It's an organization of volunteer python maintainers specialized in the python ecosystem. I appreciate splinter and I would like for it to keep living. Thank you very much.

    opened by deronnax 15
  • status_code is only ever 200 - OK.

    status_code is only ever 200 - OK.

    See attached testcase.

    A status_code of 200 seems to be hard-coded since this commit?

    https://github.com/cobrateam/splinter/commit/d151c565c1068c6f0ac3f09ff010353b9b1a9de2

    import splinter
    
    with splinter.Browser('firefox') as browser:
        # should be 200
        browser.visit('http://google.com')
        print(browser.status_code.code)
        print(browser.status_code.is_success())
    
        browser.visit('http://google.com/is_this_a_bug')
        print(browser.status_code.code)
        print(browser.status_code.is_success())
    
        browser.visit('http://github.com/is_this_a_bug/is_this_a_bug_project')
        print(browser.status_code.code)
        print(browser.status_code.is_success())
    
        browser.visit('http://this_domain_doesnt_even_exist.coma')
        print(browser.status_code.code)
        print(browser.status_code.is_success())
    

    Gives this output:

    $ python ./testcase.py 
    200
    True
    200
    True
    200
    True
    200
    True
    

    This should be returning 404 for all but the 1st example.

    bug 
    opened by lexual 15
  • Splinter crashes when using screenshot with pillow with full=True

    Splinter crashes when using screenshot with pillow with full=True

    I am trying to take a screenshot of the nav element with:

       self.browser.find_by_css("nav").first.screenshot('/tmp/nav_screenshot.png', full=True)
    

    which should be pretty much the example in the docs (using css rather than xpath find).

    Full traceback:

    self = <splinter.driver.webdriver.WebDriverElement object at 0x7feb34c09c18>
    name = '/tmp/nav_screenshot.png', suffix = '.png', full = True
    
        def screenshot(self, name='', suffix='.png', full=False):
            name = name or ''
    
            (fd, filename) = tempfile.mkstemp(prefix=name, suffix=suffix)
            # don't hold the file
            os.close(fd)
    
            if full:
                ori_window_size = self.driver.get_window_size()
    >           self._full_screen()
    E           TypeError: _full_screen() takes 0 positional arguments but 1 was given
    
    /usr/local/lib/python3.6/dist-packages/splinter/driver/webdriver/__init__.py:951: TypeError
    

    OS: Ubuntu 18.04.5 LTS Python: 3.6.9 splinter: 0.14.0 Pillow: 7.2.0 (installed via pip after removing python3-pil package)

    Two things to note about "nav":

    1. It is a column on the left hand side of the screen.
    2. It starts in the viewport and extends outside.

    trying to screenshot it without full=True results in: SystemError: tile cannot extend outside image

    Hmph. Looks like bad def of _full_screen in init.py:

        def _full_screen():
            width = self.driver.execute_script("return Math.max(document.body
    .scrollWidth, document.body.offsetWidth);")
            height = self.driver.execute_script("return Math.max(document.bod
    y.scrollHeight, document.body.offsetHeight);")
            self.driver.set_window_size(width, height)
    
    

    Editing this to: def _full_screen(self): (and clearing the file from the cache) makes it blow up further down in /usr/local/lib/python3.6/dist-packages/PIL/ImageFile.py:514 with:

    SystemError: tile cannot extend outside image
    

    Any ideas?

    Thanks.

    -- rouilj

    opened by rouilj 14
  • javascript:void(0) - issue to click on menu

    javascript:void(0) - issue to click on menu

    Splinter version 0.7.7 Python version 2.7.5

    Hello All,

    I'm struggling for clicking on this menu as below:

    <a class="buttons" id="STR_TOPNAV_REMOTE_CONTROL" href="javascript:void(0)" lnavobj="RMCNTRL_LEFTNAV">Remote Control</a>

    I also tried by class, Xpath, by ID with no luck, would you have any suggestion?

    Thanks

    question 
    opened by yannlm1 14
  • Opening a link in a new tab

    Opening a link in a new tab

    Howdy,

    With Selenium, it is easy to open a link in a new tab. Is this even possible with Splinter? I dived deeply into Splinter API documentation but I did not find anything related to tab features.

    Thank you in advance for any hints, Bill BEGUERADJ

    help wanted good first issue 
    opened by begueradj 14
  • Issue 377 start firefox from custom path

    Issue 377 start firefox from custom path

    Pull request for https://github.com/cobrateam/splinter/issues/377.

    I have to say that I'm not particularly proud of the unit tests as they just mock out half the universe. I'd love to get some guidance how you would consider testing this.

    opened by dwt 13
  • Make `fill_form` more robust by requiring form ID.

    Make `fill_form` more robust by requiring form ID.

    Current implementation for fill_form attempts to find fields by their names. However, if the same name is found in multiple places, this method will either fail with a InvalidElementStateException exception or the wrong field may be filled.

    Please see #564 for more info.

    opened by omaciel 12
  • Changelog: Single file?

    Changelog: Single file?

    I think it's far easier to comprehend across multiple versions when release notes are just text, in a single file - without extra distractions / spacing / etc. Is it possible to just to have a single changelog file?

    Example: https://github.com/SeleniumHQ/selenium/blob/selenium-4.7.2-python/py/CHANGES

    opened by tony 0
  • Changed find_by_name to find_by_xpath in fill()

    Changed find_by_name to find_by_xpath in fill()

    When dealing with a page where the name is set dynamically we were not able to use fill() or attach_file() as it was accepting name as a parameter, so changed it to xpath as we can always get a xpath which is unique

    opened by riddhikt 0
  • Can´t find Iframe

    Can´t find Iframe

    So I am trying to find an Iframe with splinter and I can find the first one with,

    with browser.get_iframe('iframemodal') as iframe: iframe.do_stuff()

    and instead of iframemodal I use index which is 0 and this works fine but when I press the box in that Iframe it opens another Iframe without a name or id and everytime the index order of that newly opened iframe changes so I cant use index again it has a title but I think get.iframe doesnt work with css is there a way to find the second iframe ?

    opened by Peliikan 1
  • Error in Docker Container,

    Error in Docker Container, "unknown error: DevToolsActivePort file doesn't exist"

    I'm trying to run a program in a Docker container using Splinter. Here is my Dockerfile

    FROM python:3.7-alpine
    
    COPY requirements.txt . 
    
    RUN apk update && \
        apk add make automake gcc g++ subversion python3-dev && \
        apk add gcc musl-dev python3-dev libffi-dev openssl-dev && \
        apk add chromium chromium-chromedriver && \
        pip install -r /requirements.txt && \
        rm -rf /root/.[acpw]* ipaexg00301*
    
    COPY . /app
    

    After creating the container and running my code in it I get the following error:

    Traceback (most recent call last): File "/app/youversion_ingress.py", line 387, in main() File "/app/youversion_ingress.py", line 375, in main books_df, grouped_df = books_chapter_count(exploded, max_chapters) File "/app/youversion_ingress.py", line 224, in books_chapter_count browser = Browser('chrome') File "/usr/local/lib/python3.6/site-packages/splinter/browser.py", line 101, in Browser return get_driver(driver, retry_count=retry_count, *args, **kwargs) File "/usr/local/lib/python3.6/site-packages/splinter/browser.py", line 76, in get_driver raise err File "/usr/local/lib/python3.6/site-packages/splinter/browser.py", line 72, in get_driver return driver(*args, **kwargs) File "/usr/local/lib/python3.6/site-packages/splinter/driver/webdriver/chrome.py", line 43, in init self.driver = Chrome(options=options, **kwargs) File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py", line 81, in init desired_capabilities=desired_capabilities) File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in init self.start_session(capabilities, browser_profile) File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute self.error_handler.check_response(response) File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/lib/chromium/chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

    Running my script locally on my machine works fine so it must be something within Docker container. Input and comments would be appreciated.

    opened by oliverdixon85 2
  • ModuleNotFoundError: No module named 'urllib3'

    ModuleNotFoundError: No module named 'urllib3'

    New to using splinter, just pip installed into a venv, and get a ModuleNotFoundError when trying to import:

    % pip install splinter
    Looking in indexes: https://pypi.org/simple
    Collecting splinter
      Using cached splinter-0.18.1-py3-none-any.whl (37 kB)
    Installing collected packages: splinter
    Successfully installed splinter-0.18.1
    
    % python -c "from splinter import Browser"
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/home/rob/tmp/v/lib64/python3.10/site-packages/splinter/__init__.py", line 5, in <module>
        from splinter.browser import Browser  # NOQA
      File "/home/rob/tmp/v/lib64/python3.10/site-packages/splinter/browser.py", line 12, in <module>
        from urllib3.exceptions import MaxRetryError
    ModuleNotFoundError: No module named 'urllib3'
    
    opened by rgilton 5
Releases(0.18.1)
  • 0.18.1(Jun 28, 2022)

    What's New in Splinter 0.18.1?

    Changed:

    • Set Firefox preferences through options instead of FirefoxProfile

    Fixed:

    • Use dedicated logger in browser.py to avoid clobbing other Python logging
    • Removed required selenium import for error handling, making it possible to use splinter without installing selenium (as long as a selenium driver isn't used)
    Source code(tar.gz)
    Source code(zip)
  • 0.18.0(Jun 10, 2022)

    What's New in Splinter 0.18.0?

    Added:

    • WebDriverElement() now implements the shadow_root property. This returns a ShadowRootElement() object to interact with the shadow root of an element.
    • Failed driver imports are logged at the debug level instead of silently ignored
    • browser.html_snapshot() now takes the optional unique_file argument. Setting this to False will disable the addition of random characters to the filename.

    Changed:

    • repr(ElementList()) now returns the repr of the internal container.
    • Driver.find_link_by_ methods have been removed. Use Driver.links.find_by_.
    • Screenshot taken by WebDriverElement.screenshot() now implements Selenium's element screenshot instead of cropping a full page screenshot.
    • Flask/Django's back/forward methods more accurately store browsing history
    • Official Python 3.6 support has been removed

    Fixed:

    • 0.17.0 would report as 0.16.0. 0.18.0 reports correctly.
    • When using Firefox, extensions can now be installed
    Source code(tar.gz)
    Source code(zip)
  • 0.17.0(Dec 20, 2021)

    What's New in Splinter 0.17.0?

    • Added parameter to DriverAPI.screenshot and ElementAPI.screenshot to indicate if unique filename should be ensured (https://github.com/cobrateam/splinter/pull/949)
    • Added Selenium 4 support

    Backward incompatible changes

    • Removed python 2.7 support (https://github.com/cobrateam/splinter/pull/952)
    • Selenium 3 is no longer installed by default. To install Selenium 3, use the selenium3 extra argument
    Source code(tar.gz)
    Source code(zip)
  • 0.16.0(Oct 17, 2021)

    whats's new in splinter 0.16.0?

    • Pin Selenium < 4.0 (https://github.com/cobrateam/splinter/pull/930)
    • Add support for Microsoft Edge (https://github.com/cobrateam/splinter/pull/912)
    • Accept extra arguments for cookies (https://github.com/cobrateam/splinter/pull/895)
    • Fix lxmldriver url join when form action is empty (https://github.com/cobrateam/splinter/pull/900)
    • Use io.open() to fix encoding issues on some platforms (https://github.com/cobrateam/splinter/pull/904)
    • allow passing options to Firefox webdriver (https://github.com/cobrateam/splinter/pull/892)

    Backward incompatible changes

    • Remove sending a list of cookie dicts to CookieManager.add() (https://github.com/cobrateam/splinter/pull/799)
    Source code(tar.gz)
    Source code(zip)
  • 0.15.0(Jun 30, 2021)

    whats's new in splinter 0.15.0?

    • Add more input types to Webdriver clear() (https://github.com/cobrateam/splinter/pull/780)
    • Standardize init of CookieManager (https://github.com/cobrateam/splinter/pull/795)
    • Add delete_all method to CookieManager (https://github.com/cobrateam/splinter/pull/797)
    • Warn user when cookies list is used (https://github.com/cobrateam/splinter/pull/801)
    • Added retry_count to get_driver (https://github.com/cobrateam/splinter/pull/754)
    • Fix full screen screenshot (https://github.com/cobrateam/splinter/pull/810)
    • Add flag to ignore missing fields in fill_form (https://github.com/cobrateam/splinter/pull/821)
    • Opening a link in a new tab (https://github.com/cobrateam/splinter/pull/800)
    Source code(tar.gz)
    Source code(zip)
  • 0.13.0(Dec 15, 2019)

    whats's new in splinter 0.13.0?

    • Patch Remote WebDriver to add retry attempts (https://github.com/cobrateam/splinter/pull/742)
    • Add driver attribute to WebDriverElement. This fixes an issue where mouse interaction fails on nested elements (https://github.com/cobrateam/splinter/pull/740)
    • Fix WebDriverElement.select and .select_by_text to search only inside the parent element (https://github.com/cobrateam/splinter/pull/729)
    • find_by with 0 second wait_time only checks once (https://github.com/cobrateam/splinter/pull/739)
    • Fix FlaskClient redirects (https://github.com/cobrateam/splinter/pull/721)
    Source code(tar.gz)
    Source code(zip)
  • 0.12.0(Dec 9, 2019)

    whats's new in splinter 0.12.0?

    • find_by_text now handle strings with quotation marks (https://github.com/cobrateam/splinter/issues/457)
    • find_link_by methods are now chainable (https://github.com/cobrateam/splinter/pull/699)
    • ElementList.__getattr__() no longer hide ElementNotFound (https://github.com/cobrateam/splinter/pull/707)
    • Firefox headless mode now handle custom firefox_binary option (https://github.com/cobrateam/splinter/pull/714)
    • Firefox driver now respects headless option in subsequent calls (https://github.com/cobrateam/splinter/pull/715)
    • Browser.get_alert() returns None if no alert exists (https://github.com/cobrateam/splinter/issues/387)
    • Retry WebElement.click if Exception is thrown (https://github.com/cobrateam/splinter/pull/725)
    • find_by methods in WebDriverElement now uses retry mechanism (https://github.com/cobrateam/splinter/pull/727)
    • is_not_present/visible returns True immediately after not finding anything (https://github.com/cobrateam/splinter/pull/732)
    • Accept all valid arguments for Remote WebDriver (https://github.com/cobrateam/splinter/pull/734)
    • Allow ActionChains when using Remote WebDriver (https://github.com/cobrateam/splinter/pull/738)
    Source code(tar.gz)
    Source code(zip)
  • 0.11.0(Jun 28, 2019)

    whats's new in splinter 0.11.0?

    • Browser.get_alert() returns Alert instead of a wrapper object
    • Add browser.html_snapshot method
    • Allow browser.get_iframe() to accept a web element
    • Fix mouse_out method
    • ElementList is no longer a subclass of list
    • Browser.get_alert() now waits for alert to present
    • Use 'switch_to.alert' instead of deprecated 'switch_to_alert'
    Source code(tar.gz)
    Source code(zip)
  • 0.10.0(Nov 16, 2018)

    whats's new in splinter 0.10.0?

    • Scroll to elements before to execute action chains
    • Using options instead firefox_options to avoid warnings (https://github.com/cobrateam/splinter/pull/634)
    • Add support for *args parameter in execute_script (https://github.com/cobrateam/splinter/issues/436)
    • Implement __ne__ in StatusCode (https://github.com/cobrateam/splinter/issues/460)
    • Using the new syntax switch_to_alert instead switch_to.alert to avoid webdriver warnings.
    • CookieManager. __eq__ returns a bool value (https://github.com/cobrateam/splinter/issues/308)
    • Fix find_by_text to be used inside a chain (https://github.com/cobrateam/splinter/issues/6281)
    • Add support for selenium 3.141.0
    Source code(tar.gz)
    Source code(zip)
  • 0.9.0(Aug 27, 2018)

    whats's new in splinter 0.9.0?

    • phantomjs support was removed (https://github.com/cobrateam/splinter/issues/592)
    • add options argument for chrome driver (https://github.com/cobrateam/splinter/pull/345)
    • (bugfix) avoid element.find_by_text searches whole dom (https://github.com/cobrateam/splinter/issues/612)
    • add suport for zope.testbrowser 5+
    • handle webdriver StaleElementReferenceException (https://github.com/cobrateam/splinter/issues/541)
    • add support for Flask 1+
    • add support for seleniu 3.14.0
    • update lxml to 4.2.4
    • update cssselect to 1.0.3
    Source code(tar.gz)
    Source code(zip)
  • 0.8.0(May 3, 2018)

    whats's new in splinter 0.8.0?

    • add support for Firefox incognito mode (https://github.com/cobrateam/splinter/pull/578)
    • allow return value for execute_script to be returned (https://github.com/cobrateam/splinter/pull/585)
    • chrome_options parameter renamed to options (https://github.com/cobrateam/splinter/pull/590)
    • removed deprecated mouseover method
    • raises NotImplementedError on status_code in drivers based on webdriver
    • phantomjs is deprecated (this driver will be removed in 0.9.0)
    Source code(tar.gz)
    Source code(zip)
  • 0.7.6(Jul 30, 2017)

    • fix fill_form for select element
    • support chrome headless mode

    you can see more in https://splinter.readthedocs.io/en/latest/news/0.7.6.html

    Source code(tar.gz)
    Source code(zip)
  • 0.7.4(Aug 7, 2016)

    whats's new in splinter 0.7.4?

    • support Selenium 2.53.6
    • find_by_text support quotes (#420).
    • Selenium capabilities for Firefox driver (#417).
    • multi-select support for Django and Flask (#443).
    • custom headers support to Flask (#444).
    • add in operation for cookies (#445).
    • Support for is_element_present_by_* in non-javascript drivers (#463).
    • incognito mode for Google Chrome (#465).
    • support for clearing text field types (#479).
    • allow to pass a chrome Options instance to Browser ([#494 (https://github.com/cobrateam/splinter/pull/494)).
    • new click_link_by_id method (#498).

    Backward incompatible changes

    • RequestHandler is removed and the status use lazy evaluation.
    Source code(tar.gz)
    Source code(zip)
A tool to auto generate the basic mocks and asserts for faster unit testing

Mock Generator A tool to generate the basic mocks and asserts for faster unit testing. 🎉 New: you can now use pytest-mock-generator, for more fluid p

31 Dec 24, 2022
Show, Edit and Tell: A Framework for Editing Image Captions, CVPR 2020

Show, Edit and Tell: A Framework for Editing Image Captions | arXiv This contains the source code for Show, Edit and Tell: A Framework for Editing Ima

Fawaz Sammani 76 Nov 25, 2022
Python dilinin Selenium kütüphanesini kullanarak; Amazon, LinkedIn ve ÇiçekSepeti üzerinde test işlemleri yaptığımız bir case study reposudur.

Python dilinin Selenium kütüphanesini kullanarak; Amazon, LinkedIn ve ÇiçekSepeti üzerinde test işlemleri yaptığımız bir case study reposudur. LinkedI

Furkan Gulsen 8 Nov 01, 2022
Load Testing ML Microservices for Robustness and Scalability

The demo is aimed at getting started with load testing a microservice before taking it to production. We use FastAPI microservice (to predict weather) and Locust to load test the service (locally or

Emmanuel Raj 13 Jul 05, 2022
Automated Security Testing For REST API's

Astra REST API penetration testing is complex due to continuous changes in existing APIs and newly added APIs. Astra can be used by security engineers

Flipkart Incubator 2.1k Dec 31, 2022
pytest plugin providing a function to check if pytest is running.

pytest-is-running pytest plugin providing a function to check if pytest is running. Installation Install with: python -m pip install pytest-is-running

Adam Johnson 21 Nov 01, 2022
A simple script to login into twitter using Selenium in python.

Quick Talk A simple script to login into twitter using Selenium in python. I was looking for a way to login into twitter using Selenium in python. Sin

Lzy-slh 4 Nov 20, 2022
hyppo is an open-source software package for multivariate hypothesis testing.

hyppo (HYPothesis Testing in PythOn, pronounced "Hippo") is an open-source software package for multivariate hypothesis testing.

neurodata 137 Dec 18, 2022
Scraping Bot for the Covid19 vaccination website of the Canton of Zurich, Switzerland.

Hi 👋 , I'm David A passionate developer from France. 🌱 I’m currently learning Kotlin, ReactJS and Kubernetes 👨‍💻 All of my projects are available

1 Nov 14, 2021
This repository contains a testing script for nmigen-boards that tries to build blinky for all the platforms provided by nmigen-boards.

Introduction This repository contains a testing script for nmigen-boards that tries to build blinky for all the platforms provided by nmigen-boards.

S.J.R. van Schaik 4 Jul 23, 2022
Generic automation framework for acceptance testing and RPA

Robot Framework Introduction Installation Example Usage Documentation Support and contact Contributing License Introduction Robot Framework is a gener

Robot Framework 7.7k Jan 07, 2023
automate the procedure of 403 response code bypass

403bypasser automate the procedure of 403 response code bypass Description i notice a lot of #bugbountytips describe how to bypass 403 response code s

smackerdodi2 40 Dec 16, 2022
Run ISP speed tests and save results

SpeedMon Automatically run periodic internet speed tests and save results to a variety of storage backends. Supported Backends InfluxDB v1 InfluxDB v2

Matthew Carey 9 May 08, 2022
Ab testing - basically a statistical test in which two or more variants

Ab testing - basically a statistical test in which two or more variants

Buse Yıldırım 5 Mar 13, 2022
Divide full port scan results and use it for targeted Nmap runs

Divide Et Impera And Scan (and also merge the scan results) DivideAndScan is used to efficiently automate port scanning routine by splitting it into 3

snovvcrash 226 Dec 30, 2022
A simple serverless create api test repository. Please Ignore.

serverless-create-api-test A simple serverless create api test repository. Please Ignore. Things to remember: Setup workflow Change Name in workflow e

Sarvesh Bhatnagar 1 Jan 18, 2022
a socket mock framework - for all kinds of socket animals, web-clients included

mocket /mɔˈkɛt/ A socket mock framework for all kinds of socket animals, web-clients included - with gevent/asyncio/SSL support ...and then MicroPytho

Giorgio Salluzzo 249 Dec 14, 2022
PENBUD is penetration testing buddy which helps you in penetration testing by making various important tools interactive.

penbud - Penetration Tester Buddy PENBUD is penetration testing buddy which helps you in penetration testing by making various important tools interac

Himanshu Shukla 15 Feb 01, 2022
No longer maintained, please migrate to model_bakery

Model Mommy: Smart fixtures for better tests IMPORTANT: Model Mommy is no longer maintained and was replaced by Model Bakery. Please, consider migrati

Bernardo Fontes 917 Oct 04, 2022