selene
User-oriented Web UI browser tests in Python
파일 탐색기
최종 버전 다운로드 (.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
# 설치 가이드
1. 코드 내려받기
git clone https://github.com/yashaka/selene
깃허브에서 프로젝트 코드 전체를 내 컴퓨터로 내려받습니다.
cd selene
방금 내려받은 프로젝트 폴더 안으로 이동합니다.
2. 공식 설치 스크립트
쉬움 추천사전 준비물
- Python 3 pip 명령어를 쓰려면 Python이 필요합니다.
pip install selene --pre
PyPI에 배포된 패키지를 바로 설치합니다. 소스 클론이 필요 없습니다.
pip install selene
PyPI에 배포된 패키지를 바로 설치합니다. 소스 클론이 필요 없습니다.
pip install git+https://github.com/yashaka/selene.git
PyPI에 배포된 패키지를 바로 설치합니다. 소스 클론이 필요 없습니다.
설치 후 새 터미널을 열고, 프로그램의 버전 확인 명령(예: --version)으로 정상 설치됐는지 확인하세요.
이 레포의 README에 적힌 실제 명령어를 그대로 가져왔습니다.
3. Docker
쉬움사전 준비물
- Git GitHub에서 프로젝트 코드를 내려받으려면 필요합니다.
- Docker Desktop 컨테이너를 빌드하고 실행하려면 필요합니다. 설치 후 실행해서 백그라운드에 켜두세요.
⚠️ 이 프로젝트는 규모가 큰 저장소라, 이 방법이 실제 핵심 제품이 아니라 내부 하위 패키지를 가리키는 것일 수 있습니다. README 전체를 함께 확인해보세요.
docker build -f tools/tinymce-local/Dockerfile -t selene .
Dockerfile을 기반으로 실행 가능한 이미지를 빌드합니다.
docker run -p 8080:80 selene
빌드된 이미지를 실제 컨테이너로 실행합니다.
터미널에 docker compose ps 를 입력해 컨테이너들이 Up 상태인지 확인하세요. README에 포트 번호가 적혀있다면 브라우저에서 http://localhost:포트번호 로 접속해보세요.
4. Python
쉬움사전 준비물
poetry new my-tests-with-selene
이 명령어를 터미널에 그대로 입력해 실행하세요.
poetry add selene --allow-prereleases # for pre-release version
이 명령어를 터미널에 그대로 입력해 실행하세요.
poetry install
pyproject.toml에 명시된 라이브러리를 설치합니다.
pip install selene --pre
PyPI에 배포된 패키지를 바로 설치합니다. 소스 클론이 필요 없습니다.
pip install selene
PyPI에 배포된 패키지를 바로 설치합니다. 소스 클론이 필요 없습니다.
에러 메시지 없이 실행되고 터미널에 안내 문구가 출력되면 정상입니다.
이 레포의 README에 적힌 실제 명령어를 그대로 가져왔습니다.
// repository documentation
Was this content helpful?
(0 ratings)
