selene
User-oriented Web UI browser tests in Python
File Explorer
Download Latest Version (.zip)- deploy-mkdocs-poetry.yml
- linters.yml
- publish.yml
- tests.yml
- FUNDING.yml
- build.sh
- bump_build_publish.sh
- bump_version.sh
- check_release_version.py
- get_lock_version.py
- lint_black.sh
- lint_mypy.sh
- lint_pycodestyle.sh
- lint_pylint.sh
- publish.sh
- serve_docs.sh
- with-autocomplete-py.png
- with-quick-fix-py.png
- without-autocomplete-py.png
- todomvc-app-inspect.png
- todomvc-app.png
- view-page-source-of-todomvc-with-no-todos-in-chrome.png
- autocomplete-browser.png
- autocomplete-condition.png
- autocomplete-selectors.jpg
- autocomplete-selene-element.png
- collapse-child-element.png
- compose-css-selector.png
- compose-selector-child-element.png
- compose-selector-parent-element.png
- configuring-test-runner.png
- context-menu-inspect.png
- context-menu-new-python-file.png
- find-parent-element.png
- html-element-highlighted.png
- new-python-file-created.png
- new-python-file-name.png
- run-test-from-pycharm.png
- search-for-html-element.png
- select-attribute.png
- favicon.png
- logo-icon.png
- github-actions-url-to-docs.png
- github-pages-via-actions.png
- code-conventions-guide.md
- documentation-for-project-tutorial.md
- how-to-organize-docs-guide.md
- how-to-write-docs-guide.md
- index.md
- release-workflow-guide.md
- to-documentation-guide.md
- to-source-code-guide.md
- adding-chrome-extension-howto.md
- clipboard-copy-and-paste-howto.md
- custom-test-id-selectors-howto.md
- custom-user-profile-howto.md
- extending-selene-howto.md
- iframes-howto.md
- index.md
- shadow-dom-howto.md
- elements.md
- command.md
- condition.md
- configuration.md
- exceptions.md
- index.md
- match.md
- query.md
- changelog.md
- index.md
- license.md
- selene-cheetsheet-howto.md
- selene-for-page-objects-guide.md
- selene-in-action-tutorial.md
- selene-quick-start-tutorial.md
- warn-from-next-release.md
- __init__.py
- be.py
- __init__.py
- __init__.py
- __init__.py
- test_the_internet_app.py
- __init__.py
- __init__.py
- have.py
- __init__.py
- __init__.py
- __init__.py
- __init__.py
- conftest.py
- test_datepicker.py
- __init__.py
- __init__.py
- logging.py
- __init__.py
- selene.py
- __init__.py
- __init__.py
- conftest.py
- test_todomvc.py
- __init__.py
- __init__.py
- acceptance_test.py
- conftest.py
- __init__.py
- locators.py
- __init__.py
- .env.example
- __init__.py
- project.py
- __init__.py
- acceptance_test.py
- conftest.py
- __init__.py
- mobile_selectors.py
- path.py
- __init__.py
- __init__.py
- project.py
- README.md
- __init__.py
- todo_implement.py
- __init__.py
- test_wikipedia.py
- __init__.py
- test_todomvc.py
- __init__.py
- test_todomvc.py
- __init__.py
- test_todomvc.py
- __init__.py
- __init__.py
- test_todomvc.py
- __init__.py
- test_todomvc.py
- __init__.py
- test_todomvc.py
- __init__.py
- test_todomvc.py
- __init__.py
- test_todomvc.py
- __init__.py
- test_wikipedia.py
- __init__.py
- test_wikipedia.py
- __init__.py
- test_wikipedia.py
- __init__.py
- test_wikipedia.py
- __init__.py
- __init__.py
- test_todomvc.py
- __init__.py
- test_todomvc.py
- __init__.py
- test_todomvc.py
- __init__.py
- custom_conditions.py
- log_all_selene_commands_with_wait.py
- select_from_table.py
- __init__.py
- __init__.py
- __init__.py
- __init__.py
- persistent.py
- __init__.py
- _typing_functions.py
- appium_tools.py
- fp.py
- helpers.py
- none_object.py
- predicate.py
- __init__.py
- _actions.py
- _browser.py
- _browser.pyi
- _client.py
- _element.py
- _elements.py
- _elements_context.py
- _entity.py
- command.py
- condition.py
- conditions.py
- configuration.py
- configuration.pyi
- entity.py
- exceptions.py
- locator.py
- match.py
- query.py
- wait.py
- __init__.py
- __init__.py
- context.py
- elements.py
- locators.py
- __init__.py
- be.py
- have.py
- not_.py
- __init__.py
- browser.py
- config.py
- jquery_style.py
- __init__.py
- _logging.py
- _pom.py
- _wait.py
- by.py
- webdriver.py
- __init__.py
- _context.py
- _context.pyi
- _elements.py
- _elements.pyi
- __init__.py
- _managed.py
- py.typed
- __init__.py
- test_adding_todos.py
- __init__.py
- test_adding_todos.py
- conftest.py
- test_ecosia.py
- __init__.py
- givenpage.py
- helper.py
- __init__.py
- test_todomvc.py
- __init__.py
- acceptance_straightforward_test.py
- driver_management_test.py
- speed_comparison_of_simple_element_actions_test.py
- speed_comparison_of_typing_and_submit_actions_test.py
- test_search.py
- __init__.py
- straightforward_style_test.py
- test_logging_outer_html.py
- test_shared_config_base_url.py
- __init__.py
- test_material_ui__react_select.py
- test_material_ui__react_select__explicit_PO_browser_based__with_alias.py
- test_material_ui__react_select__explicit_PO_browser_based__with_lambda_on_self.py
- test_material_ui__react_x_data_grid__mit.py
- __init__.py
- tasks.py
- __init__.py
- todomvc_test.py
- __init__.py
- todomvc_test.py
- __init__.py
- todomvc_test.py
- __init__.py
- todomvc_test.py
- __init__.py
- __init__.py
- widgets.py
- __init__.py
- order_test.py
- __init__.py
- test_matching.py
- __init__.py
- givenpage.py
- __init__.py
- browser__config__wait_decorator_test.py
- browser__config__wait_decorator_with_decorator_from_support_logging_test.py
- browser__open_test.py
- save_screenshot_test.py
- __init__.py
- browser__actions_test.py
- browser__execute_script_test.py
- browser__open_test.py
- browser__should_test.py
- browser__switch_to__alert__local_test.py
- browser__switch_to__alert__remote_test.py
- by_text_test.py
- collection__count_test.py
- collection__element_by_condition__lazy_search_test.py
- collection__element_by_condition__waiting_search_on_actions_like_click_test.py
- collection__filtered_by_condition__lazy_search_test.py
- collection__filtered_by_condition__len_test.py
- collection__filtered_by_condition__no_waiting_search_test.py
- collection__get__query__inner_htmls_test.py
- collection__get__query__outer_htmls_test.py
- collection__get__query__texts_content_test.py
- collection__get__query__texts_test.py
- collection__get__query__values_test.py
- collection__indexed_element__lazy_search_test.py
- collection__indexed_element__waiting_search_on_actions_like_click_test.py
- collection__inner_collection__nowaiting_search_test.py
- collection__inner_collection_lazy_search_test.py
- collection__lazy_search_test.py
- collection__len_test.py
- collection__nowaiting_search_test.py
- collection__should__element_condition_test.py
- collection__should__keeps_condition_name_test.py
- command__copy__paste_test.py
- command__js__set_style_property__test.py
- command__select_all_test.py
- condition__browser__have_url_test.py
- condition__collection__have_exact_texts_like__with_ellipsis_globbing_test.py
- condition__collection__have_exact_texts_test.py
- condition__collection__have_texts_like__with_items_globs_regex_patterns_and_wildcards_test.py
- condition__collection__have_texts_test.py
- condition__collection__have_values_test.py
- condition__element__enabled__plus_inversions_and_aliases_test.py
- condition__element__have_css_class_test.py
- condition__element__have_exact_text_test.py
- condition__element__have_text_matching__compared_test.py
- condition__element__have_text_test.py
- condition__element__is_blank_test.py
- condition__element__present__via_inline_Match_test.py
- condition__element__present_visible__plus_inversions__compared_test.py
- condition__element__selected__plus_inversions_test.py
- condition__elements__have_attribute_and_co_test.py
- condition__elements__have_property_and_co_test.py
- condition__elements__have_text_and_co_test.py
- condition__mixed_test.py
- condition_each_test.py
- conftest.py
- core_wait_test.py
- core_wait_until_test.py
- element__all__len_test.py
- element__click_test.py
- element__element__lazy_search_test.py
- element__element__waiting_search_on_actions_like_click_test.py
- element__get__query__frame_context__decorator_test.py
- element__get__query__frame_context__element_test.py
- element__get__query__frame_context__nested__element_test.py
- element__get__query__frame_context__nested__with_test.py
- element__get__query__frame_context__with_test.py
- element__get__query__js__shadow_root__all_elements_test.py
- element__get__query__js__shadow_root__element_test.py
- element__lazy_search_test.py
- element__perform__drag_and_drop_by_offset_test.py
- element__perform__drag_and_drop_to_test.py
- element__perform__js__click_test.py
- element__perform__js__drag_and_drop_to_test.py
- element__perform__js__drop_file_test.py
- element__perform__select_all_test.py
- element__scroll_to__test.py
- element__type_test.py
- element__waiting_search_on_actions_like_click_test.py
- elements__shadow_root__element_test.py
- error_messages_test.py
- query_size_test.py
- save_page_source_test.py
- app.js
- jquery.min.js
- order.html
- __init__.py
- empty.html
- README.md
- selenite.png
- speed_benchmark_flow.html
- speed_benchmark_input.html
- __init__.py
- test_persistent.py
- __init__.py
- _typing_fucntions__query_test.py
- fp__either_test.py
- fp__threads_test.py
- test_predicate.py
- __init__.py
- _pom_test.py
- command__js__click_test.py
- condition_test.py
- test_wait.py
- __init__.py
- __init__.py
- __init__.py
- base_test.py
- bys_test.py
- conftest.py
- const.py
- helpers.py
- build.sh
- run.sh
- stop.sh
- index.html
- health
- Dockerfile
- nginx.conf
- README.md
- .codecov.yml
- .coveragerc
- .gitignore
- .pylint-disabled-rules
- CHANGELOG.md
- CONTRIBUTING.md
- LICENSE
- mkdocs.yml
- poetry.lock
- pyproject.toml
- README.md
# Installation Guide
git clone https://github.com/yashaka/selene
Downloads the entire project code from GitHub to your computer.
cd selene
Moves into the project folder you just downloaded.
2. Official Install Script
Easy Recommended- Python 3 Python is required to use pip.
pip install selene --pre
Installs the package published on PyPI directly β no need to clone the source.
pip install selene
Installs the package published on PyPI directly β no need to clone the source.
pip install git+https://github.com/yashaka/selene.git
Installs the package published on PyPI directly β no need to clone the source.
Pulled directly from this repo's README.
3. Docker
Easy- Git Needed to download the project code from GitHub.
- Docker Desktop Needed to build and run containers. Install it and keep it running in the background.
docker build -f tools/tinymce-local/Dockerfile -t selene .
Builds a runnable image based on the Dockerfile.
docker run -p 8080:80 selene
Runs the built image as an actual container.
4. Python
Easypoetry new my-tests-with-selene
Type this command into your terminal and run it.
poetry add selene --allow-prereleases # for pre-release version
Type this command into your terminal and run it.
poetry install
Installs the libraries listed in pyproject.toml.
pip install selene --pre
Installs the package published on PyPI directly β no need to clone the source.
pip install selene
Installs the package published on PyPI directly β no need to clone the source.
Pulled directly from this repo's README.
