{"id":21300860,"url":"https://github.com/neverstew/screenpy","last_synced_at":"2026-05-10T05:04:20.670Z","repository":{"id":52704254,"uuid":"152101164","full_name":"neverstew/screenpy","owner":"neverstew","description":"Python screenplay testing implementation","archived":false,"fork":false,"pushed_at":"2022-12-08T02:57:33.000Z","size":2221,"stargazers_count":0,"open_issues_count":3,"forks_count":2,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-15T18:26:58.662Z","etag":null,"topics":["allure","django","selenium","selenium-python","test-automation","testing"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/neverstew.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-10-08T15:16:08.000Z","updated_at":"2020-10-10T18:25:39.000Z","dependencies_parsed_at":"2023-01-25T03:45:49.462Z","dependency_job_id":null,"html_url":"https://github.com/neverstew/screenpy","commit_stats":null,"previous_names":["neverstew/screenpy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/neverstew/screenpy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neverstew%2Fscreenpy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neverstew%2Fscreenpy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neverstew%2Fscreenpy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neverstew%2Fscreenpy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neverstew","download_url":"https://codeload.github.com/neverstew/screenpy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neverstew%2Fscreenpy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265534900,"owners_count":23783913,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["allure","django","selenium","selenium-python","test-automation","testing"],"created_at":"2024-11-21T15:41:55.222Z","updated_at":"2026-05-10T05:04:15.629Z","avatar_url":"https://github.com/neverstew.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Screenpy\nPlease see https://screenpy.readthedocs.io/en/latest/ for the latest user documentation.\n\n## Included Tools\n### Selenium Grid\nThis repository includes a sample selenium grid docker-compose definition file.\n\nIn a new terminal, launch a machine with docker installed and ensure that you can access the port 4444 from the host machine.\n\nFrom the `screenpy` directory, launch the containers.\n\n```commandline\ncd screenpy\ndocker-compose up\n```\nYou should be able to see the output of the containers, including the node showing that it has connected to the hub.\n\n## Tests\nTo verify your additions to the codebase, run\n\n```commandline\npipenv run python -m pytest\n```\n\n### Browser Configuration\nThere are a number of environment variables that can be set to change the browser used to execute the tests.\n\n | Variable | Description |\n |----------|-------------|\n | SELENIUM_HUB_ADDRESS | Changes the address for the selenium hub. |\n | SELENIUM_DRIVER_TYPE | Changes the type of browser requested e.g. 'chrome', 'firefox' |\n | SELENIUM_BROWSER_TIMEOUT | Number of seconds a browser session is allowed to hang while a WebDriver command is running |\n | SELENIUM_CLEANUP | Specifies how often (in ms) the hub will poll running proxies for timed-out (i.e. hung) threads |\n | SELENIUM_TIMEOUT | Specifies the timeout before the server automatically kills a session that hasn't had any activity in the last X seconds. The test slot will then be released for another test to use. This is typically used to take care of client crashes. For grid hub/node roles, cleanUpCycle must also be set. |\n | APP_BASE_URL | Specifies the base url to use to locate the app. e.g. http://bbc.co.uk/ |\n \n For more options, the easiest summary can be found in [this thread](https://stackoverflow.com/questions/43395659/properties-for-selenium-grid-hub-node-config)\n\n### Timeouts\n#### Grid\nThe docker-compose file defining the grid sets some properties on the hub and nodes.  More information about what\nenvironment variables match to each selenium configuration property can be found in the `Dockerfile`s of the images.\n\nThe nodes will shut down any browsers that have not received any commands for 60 seconds.  This helps as a fail safe\nto ensure that sessions that hang due to driver/connection mishaps do not prevent the remainder of the tests from \nexecuting.\n\n#### Drivers\nThe web drivers set an implicit wait time of 5 seconds.  In other words, whenever they try to load a page or find an\nelement on a page, they will wait for success for 5 seconds.  After this time, they will throw an error.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneverstew%2Fscreenpy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneverstew%2Fscreenpy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneverstew%2Fscreenpy/lists"}