gitextract_chj3u5ci/ ├── .dockerignore ├── .github/ │ ├── FUNDING.yml │ ├── Workflows.md │ └── workflows/ │ ├── pages.yml │ ├── python-nightly-mac.yml │ ├── python-nightly-ubuntu.yml │ ├── python-nightly-windows.yml │ └── python-package.yml ├── .gitignore ├── CHANGELOG.md ├── CNAME ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── MANIFEST.in ├── README.md ├── SECURITY.md ├── _config.yml ├── azure-pipelines.yml ├── examples/ │ ├── ReadMe.md │ ├── __init__.py │ ├── basic_test.py │ ├── behave_bdd/ │ │ ├── ReadMe.md │ │ ├── __init__.py │ │ ├── behave.ini │ │ └── features/ │ │ ├── __init__.py │ │ ├── behave.ini │ │ ├── calculator.feature │ │ ├── environment.py │ │ ├── fail_page.feature │ │ ├── login_app.feature │ │ ├── realworld.feature │ │ ├── steps/ │ │ │ ├── __init__.py │ │ │ ├── calculator.py │ │ │ ├── fail_page.py │ │ │ ├── imported.py │ │ │ └── swag_labs.py │ │ └── swag_labs.feature │ ├── boilerplates/ │ │ ├── ReadMe.md │ │ ├── __init__.py │ │ ├── base_test_case.py │ │ ├── boilerplate_test.py │ │ ├── classic_obj_test.py │ │ ├── page_objects.py │ │ ├── samples/ │ │ │ ├── __init__.py │ │ │ ├── file_parsing/ │ │ │ │ ├── __init__.py │ │ │ │ ├── parse_files.py │ │ │ │ ├── qa_login_example.txt │ │ │ │ └── staging_login_example.txt │ │ │ ├── google_objects.py │ │ │ ├── google_test.py │ │ │ ├── sb_swag_test.py │ │ │ ├── swag_labs_test.py │ │ │ └── test_page_objects.py │ │ └── sb_fixture_test.py │ ├── capabilities/ │ │ ├── ReadMe.md │ │ ├── mac_cap_file.py │ │ ├── sample_cap_file_BS.py │ │ ├── sample_cap_file_BS.yml │ │ ├── sample_cap_file_SL.py │ │ ├── selenoid_cap_file.py │ │ └── win10_cap_file.py │ ├── case_plans/ │ │ ├── basic_test.MyTestClass.test_basics.md │ │ ├── my_first_test.MyTestClass.test_swag_labs.md │ │ ├── shadow_root_test.ShadowRootTest.test_shadow_root.md │ │ ├── test_assert_elements.ListAssertTests.test_assert_list_of_elements.md │ │ ├── test_calculator.CalculatorTests.test_6_times_7_plus_12_equals_54.md │ │ ├── test_demo_site.DemoSiteTests.test_demo_site.md │ │ ├── test_login.SwagLabsLoginTests.test_swag_labs_login.md │ │ └── test_mfa_login.TestMFALogin.test_mfa_login.md │ ├── case_summary.md │ ├── cdp_mode/ │ │ ├── ReadMe.md │ │ ├── __init__.py │ │ ├── playwright/ │ │ │ ├── ReadMe.md │ │ │ ├── __init__.py │ │ │ ├── raw_basic_async.py │ │ │ ├── raw_basic_nested.py │ │ │ ├── raw_basic_sync.py │ │ │ ├── raw_bing_cap_async.py │ │ │ ├── raw_bing_cap_nested.py │ │ │ ├── raw_bing_cap_sync.py │ │ │ ├── raw_cf_cap_sync.py │ │ │ ├── raw_copilot_async.py │ │ │ ├── raw_copilot_nested.py │ │ │ ├── raw_copilot_sync.py │ │ │ ├── raw_footlocker_sync.py │ │ │ ├── raw_gas_info_async.py │ │ │ ├── raw_gas_info_sync.py │ │ │ ├── raw_gitlab_async.py │ │ │ ├── raw_gitlab_nested.py │ │ │ ├── raw_gitlab_sync.py │ │ │ ├── raw_idealista_nested.py │ │ │ ├── raw_nike_sync.py │ │ │ ├── raw_nordstrom_sync.py │ │ │ ├── raw_planetmc_sync.py │ │ │ ├── raw_reddit_sync.py │ │ │ ├── raw_seatgeek_sync.py │ │ │ └── raw_walmart_sync.py │ │ ├── raw_ad_blocking.py │ │ ├── raw_ahrefs.py │ │ ├── raw_albertsons.py │ │ ├── raw_amazon.py │ │ ├── raw_antibot.py │ │ ├── raw_async.py │ │ ├── raw_basic_async.py │ │ ├── raw_basic_cdp.py │ │ ├── raw_basic_mobile.py │ │ ├── raw_bestwestern.py │ │ ├── raw_browserscan.py │ │ ├── raw_canvas.py │ │ ├── raw_cdp.py │ │ ├── raw_cdp_copilot.py │ │ ├── raw_cdp_drivers.py │ │ ├── raw_cdp_extended.py │ │ ├── raw_cdp_gitlab.py │ │ ├── raw_cdp_hyatt.py │ │ ├── raw_cdp_login.py │ │ ├── raw_cdp_methods.py │ │ ├── raw_cdp_mobile.py │ │ ├── raw_cdp_nike.py │ │ ├── raw_cdp_nordstrom.py │ │ ├── raw_cdp_pixelscan.py │ │ ├── raw_cdp_recaptcha.py │ │ ├── raw_cdp_reddit.py │ │ ├── raw_cdp_shadow.py │ │ ├── raw_cdp_tabs.py │ │ ├── raw_cdp_turnstile.py │ │ ├── raw_cdp_walmart.py │ │ ├── raw_cdp_with_sb.py │ │ ├── raw_cf.py │ │ ├── raw_cf_captcha.py │ │ ├── raw_cf_clearance.py │ │ ├── raw_chatgpt.py │ │ ├── raw_consecutive_c.py │ │ ├── raw_cookies_async.py │ │ ├── raw_copilot.py │ │ ├── raw_demo_site.py │ │ ├── raw_drag_and_drop.py │ │ ├── raw_driver.py │ │ ├── raw_easyjet.py │ │ ├── raw_elal.py │ │ ├── raw_facebook.py │ │ ├── raw_fingerprint.py │ │ ├── raw_footlocker.py │ │ ├── raw_form_turnstile.py │ │ ├── raw_gas_records.py │ │ ├── raw_geolocation.py │ │ ├── raw_geolocation_sb.py │ │ ├── raw_gettyimages.py │ │ ├── raw_gitlab.py │ │ ├── raw_glassdoor.py │ │ ├── raw_handle_alerts.py │ │ ├── raw_homedepot.py │ │ ├── raw_hyatt.py │ │ ├── raw_idealista.py │ │ ├── raw_indeed.py │ │ ├── raw_indeed_login.py │ │ ├── raw_kohls.py │ │ ├── raw_linkedin.py │ │ ├── raw_mfa_login.py │ │ ├── raw_mobile_agents.py │ │ ├── raw_mobile_async.py │ │ ├── raw_mobile_gitlab.py │ │ ├── raw_mobile_roblox.py │ │ ├── raw_mouser.py │ │ ├── raw_multi_async.py │ │ ├── raw_multi_captcha.py │ │ ├── raw_multi_cdp.py │ │ ├── raw_mycdp_cookies.py │ │ ├── raw_nevada_search.py │ │ ├── raw_nike.py │ │ ├── raw_nordstrom.py │ │ ├── raw_pixelscan.py │ │ ├── raw_planetmc.py │ │ ├── raw_pokemon.py │ │ ├── raw_priceline.py │ │ ├── raw_print_to_pdf.py │ │ ├── raw_proxy.py │ │ ├── raw_publication.py │ │ ├── raw_radwell.py │ │ ├── raw_ralphlauren.py │ │ ├── raw_reddit.py │ │ ├── raw_reddit_async.py │ │ ├── raw_req_async.py │ │ ├── raw_req_mod.py │ │ ├── raw_req_sb.py │ │ ├── raw_res_nike.py │ │ ├── raw_res_sb.py │ │ ├── raw_reuse_browser.py │ │ ├── raw_science.py │ │ ├── raw_seatgeek.py │ │ ├── raw_socialblade.py │ │ ├── raw_softpedia.py │ │ ├── raw_southwest.py │ │ ├── raw_stopandshop.py │ │ ├── raw_tab_switching.py │ │ ├── raw_theaters.py │ │ ├── raw_tiktok.py │ │ ├── raw_timezone.py │ │ ├── raw_timezone_sb.py │ │ ├── raw_totalwine.py │ │ ├── raw_trails.py │ │ ├── raw_turnstile.py │ │ ├── raw_united.py │ │ ├── raw_walmart.py │ │ ├── raw_wsform.py │ │ ├── raw_xhr_async.py │ │ ├── raw_xhr_sb.py │ │ ├── raw_xpath.py │ │ └── raw_zoro.py │ ├── chart_maker/ │ │ ├── ReadMe.md │ │ ├── chart_presentation.py │ │ ├── my_chart.py │ │ ├── pie_charts.py │ │ ├── test_area_chart.py │ │ ├── test_display_chart.py │ │ ├── test_line_chart.py │ │ ├── test_multi_series.py │ │ └── test_save_chart.py │ ├── coffee_cart_tests.py │ ├── custom_settings.py │ ├── desktop_apps/ │ │ ├── ReadMe.md │ │ └── recorder.py │ ├── dialog_boxes/ │ │ ├── ReadMe.md │ │ └── dialog_box_tour.py │ ├── edge_test.py │ ├── example_config.cfg │ ├── example_logs/ │ │ ├── ReadMe.md │ │ ├── basic_test_info.txt │ │ └── page_source.html │ ├── github_test.py │ ├── gui_test_runner.py │ ├── hack_the_planet.py │ ├── handle_alert_test.py │ ├── iframe_tests.py │ ├── locale_code_test.py │ ├── master_qa/ │ │ ├── ReadMe.md │ │ ├── __init__.py │ │ ├── basic_masterqa_test_0.py │ │ ├── masterqa_test_1.py │ │ └── pytest.ini │ ├── migration/ │ │ ├── __init__.py │ │ ├── protractor/ │ │ │ ├── ReadMe.md │ │ │ ├── __init__.py │ │ │ ├── example_spec.js │ │ │ ├── example_test.py │ │ │ ├── input_spec.js │ │ │ ├── input_test.py │ │ │ ├── mat_paginator_spec.js │ │ │ └── mat_paginator_test.py │ │ └── raw_selenium/ │ │ ├── ReadMe.md │ │ ├── __init__.py │ │ ├── flaky_messy_raw.py │ │ ├── long_messy_raw.py │ │ ├── messy_raw.py │ │ ├── pytest.ini │ │ ├── refined_raw.py │ │ └── simple_sbase.py │ ├── multiple_cdp_drivers.py │ ├── my_first_test.py │ ├── nth_child_test.py │ ├── offline_examples/ │ │ ├── __init__.py │ │ ├── demo_page.html │ │ ├── load_html_test.py │ │ ├── test_demo_page.py │ │ ├── test_extended_driver.py │ │ ├── test_handle_alerts.py │ │ ├── test_request_fixture.py │ │ └── test_user_agent.py │ ├── old_wordle_script.py │ ├── parameterized_test.py │ ├── performance_test.py │ ├── presenter/ │ │ ├── ReadMe.md │ │ ├── core_presentation.py │ │ ├── edge_presentation.py │ │ ├── fundamentals.py │ │ ├── hacking_with_cdp.py │ │ ├── multi_uc.py │ │ ├── my_presentation.py │ │ ├── py_virtual_envs.py │ │ ├── uc_presentation.py │ │ ├── uc_presentation_3.py │ │ ├── uc_presentation_4.py │ │ └── web_scraping_on_gha.py │ ├── proxy_test.py │ ├── pytest.ini │ ├── rate_limiting_test.py │ ├── raw_ahrefs.py │ ├── raw_antibot_login.py │ ├── raw_bing_captcha.py │ ├── raw_block.py │ ├── raw_brotector_captcha.py │ ├── raw_call.py │ ├── raw_cdp_drivers.py │ ├── raw_cdp_logging.py │ ├── raw_cf.py │ ├── raw_cookies.py │ ├── raw_detection.py │ ├── raw_driver_context.py │ ├── raw_driver_manager.py │ ├── raw_file_call.py │ ├── raw_form_turnstile.py │ ├── raw_games.py │ ├── raw_gitlab.py │ ├── raw_google.py │ ├── raw_gui_click.py │ ├── raw_hobbit.py │ ├── raw_invisible_captcha.py │ ├── raw_login_context.py │ ├── raw_login_driver.py │ ├── raw_login_sb.py │ ├── raw_main_call.py │ ├── raw_mobile.py │ ├── raw_multi_drivers.py │ ├── raw_multi_sb.py │ ├── raw_no_context_mgr.py │ ├── raw_order_tickets.py │ ├── raw_parameter_script.py │ ├── raw_performance_logs.py │ ├── raw_pixelscan.py │ ├── raw_pyautogui.py │ ├── raw_recaptcha.py │ ├── raw_robot.py │ ├── raw_sb.py │ ├── raw_test_scripts.py │ ├── raw_turnstile.py │ ├── raw_uc_events.py │ ├── raw_uc_mode.py │ ├── sb_fixture_tests.py │ ├── setup.cfg │ ├── shadow_root_test.py │ ├── swag_labs_user_tests.py │ ├── test_3d_apis.py │ ├── test_apple_site.py │ ├── test_assert_elements.py │ ├── test_calculator.py │ ├── test_canvas.py │ ├── test_cdp_ad_blocking.py │ ├── test_checkboxes.py │ ├── test_chinese_pdf.py │ ├── test_chromedriver.py │ ├── test_coffee_cart.py │ ├── test_console_logging.py │ ├── test_contains_selector.py │ ├── test_cycle_elements.py │ ├── test_decryption.py │ ├── test_deferred_asserts.py │ ├── test_demo_site.py │ ├── test_detect_404s.py │ ├── test_docs_site.py │ ├── test_double_click.py │ ├── test_download_files.py │ ├── test_download_images.py │ ├── test_drag_and_drop.py │ ├── test_error_page.py │ ├── test_event_firing.py │ ├── test_fail.py │ ├── test_geolocation.py │ ├── test_get_coffee.py │ ├── test_get_locale_code.py │ ├── test_get_pdf_text.py │ ├── test_get_swag.py │ ├── test_get_user_agent.py │ ├── test_hack_search.py │ ├── test_highlight_elements.py │ ├── test_image_saving.py │ ├── test_inspect_html.py │ ├── test_login.py │ ├── test_markers.py │ ├── test_mfa_login.py │ ├── test_multiple_drivers.py │ ├── test_null.py │ ├── test_override_driver.py │ ├── test_override_sb_fixture.py │ ├── test_parse_soup.py │ ├── test_pdf_asserts.py │ ├── test_pytest_parametrize.py │ ├── test_repeat_tests.py │ ├── test_request_sb_fixture.py │ ├── test_roblox_mobile.py │ ├── test_save_screenshots.py │ ├── test_sb_fixture.py │ ├── test_scrape_bing.py │ ├── test_select_options.py │ ├── test_shadow_dom.py │ ├── test_show_file_choosers.py │ ├── test_simple_login.py │ ├── test_suite.py │ ├── test_swag_labs.py │ ├── test_tinymce.py │ ├── test_todomvc.py │ ├── test_url_asserts.py │ ├── test_usefixtures.py │ ├── test_verify_chromedriver.py │ ├── test_window_switching.py │ ├── test_xfail.py │ ├── test_xkcd.py │ ├── time_limit_test.py │ ├── tour_examples/ │ │ ├── ReadMe.md │ │ ├── bootstrap_google_tour.py │ │ ├── bootstrap_xkcd_tour.py │ │ ├── driverjs_maps_tour.py │ │ ├── google_tour.py │ │ ├── hopscotch_google_tour.py │ │ ├── introjs_google_tour.py │ │ ├── maps_introjs_tour.py │ │ ├── octocat_tour.py │ │ ├── shepherd_google_tour.py │ │ └── xkcd_tour.py │ ├── translations/ │ │ ├── ReadMe.md │ │ ├── chinese_test_1.py │ │ ├── dutch_test_1.py │ │ ├── english_test_1.py │ │ ├── french_test_1.py │ │ ├── italian_test_1.py │ │ ├── japanese_test_1.py │ │ ├── korean_test_1.py │ │ ├── portuguese_test_1.py │ │ ├── pytest.ini │ │ ├── russian_test_1.py │ │ └── spanish_test_1.py │ ├── uc_cdp_events.py │ ├── unit_tests/ │ │ ├── ReadMe.md │ │ └── verify_framework.py │ ├── upgrade_chromedriver.py │ ├── upload_file_test.py │ ├── user_agent_test.py │ ├── verify_undetected.py │ ├── visual_testing/ │ │ ├── ReadMe.md │ │ ├── __init__.py │ │ ├── case_plans/ │ │ │ ├── layout_test.VisualLayoutTests.test_applitools_layout_change.md │ │ │ ├── python_home_test.VisualLayoutTests.test_python_home_layout_change.md │ │ │ ├── test_layout_fail.VisualLayoutFailureTests.test_applitools_change.md │ │ │ ├── test_layout_fail.VisualLayoutFailureTests.test_xkcd_logo_change.md │ │ │ ├── test_layout_fail.VisualLayout_FixtureTests.test_python_home_change.md │ │ │ └── xkcd_visual_test.VisualLayoutTests.test_xkcd_layout_change.md │ │ ├── layout_test.py │ │ ├── python_home_test.py │ │ ├── test_layout_fail.py │ │ └── xkcd_visual_test.py │ ├── wordle_test.py │ ├── xpath_test.py │ └── youtube_search_test.py ├── help_docs/ │ ├── ReadMe.md │ ├── behave_gui.md │ ├── case_plans.md │ ├── cdp_mode_methods.md │ ├── commander.md │ ├── customizing_test_runs.md │ ├── demo_mode.md │ ├── desired_capabilities.md │ ├── features_list.md │ ├── handling_iframes.md │ ├── happy_customers.md │ ├── hidden_files_info.md │ ├── how_it_works.md │ ├── html_inspector.md │ ├── install.md │ ├── install_python_pip_git.md │ ├── js_package_manager.md │ ├── locale_codes.md │ ├── method_summary.md │ ├── mobile_testing.md │ ├── mysql_installation.md │ ├── recorder_mode.md │ ├── shadow_dom.md │ ├── syntax_formats.md │ ├── thank_you.md │ ├── translations.md │ ├── uc_mode.md │ ├── useful_grep_commands.md │ ├── using_safari_driver.md │ ├── verify_webdriver.md │ ├── virtualenv_instructions.md │ └── webdriver_installation.md ├── install.sh ├── integrations/ │ ├── __init__.py │ ├── azure/ │ │ ├── azure_pipelines/ │ │ │ └── ReadMe.md │ │ └── jenkins/ │ │ └── ReadMe.md │ ├── behave/ │ │ ├── ReadMe.md │ │ ├── behave.ini │ │ └── features/ │ │ ├── __init__.py │ │ ├── behave.ini │ │ ├── calculator.feature │ │ ├── environment.py │ │ ├── fail_page.feature │ │ ├── realworld.feature │ │ ├── steps/ │ │ │ ├── __init__.py │ │ │ ├── calculator.py │ │ │ ├── fail_page.py │ │ │ ├── real_world.py │ │ │ └── swag_labs.py │ │ └── swag_labs.feature │ ├── brython/ │ │ ├── ReadMe.md │ │ ├── index.html │ │ ├── index.py │ │ └── library.html │ ├── docker/ │ │ ├── ReadMe.md │ │ ├── docker-entrypoint.sh │ │ └── run_docker_test_in_chrome.sh │ ├── github/ │ │ ├── ReadMe.md │ │ └── workflows/ │ │ ├── ReadMe.md │ │ └── extras.md │ ├── google_cloud/ │ │ └── ReadMe.md │ ├── katalon/ │ │ └── ReadMe.md │ ├── linux/ │ │ ├── Linuxfile.sh │ │ ├── ReadMe.md │ │ ├── Xvfb_launcher.sh │ │ ├── jenkins_permissions.sh │ │ └── tomcat_permissions.sh │ ├── node_js/ │ │ ├── ReadMe.md │ │ ├── __init__.py │ │ ├── index.html │ │ ├── my_first_test.py │ │ ├── npm-shrinkwrap.json │ │ ├── package.json │ │ ├── server.js │ │ └── test_demo_site.py │ ├── selenium_grid/ │ │ └── ReadMe.md │ └── selenium_ide/ │ └── ReadMe.md ├── mkdocs.yml ├── mkdocs_build/ │ ├── ReadMe.txt │ ├── docs_instructions.txt │ ├── index.txt │ ├── prepare.py │ └── requirements.txt ├── pyproject.toml ├── pytest.ini ├── requirements.txt ├── sbase/ │ ├── ReadMe.txt │ ├── __init__.py │ ├── __main__.py │ └── steps.py ├── seleniumbase/ │ ├── ReadMe.md │ ├── __init__.py │ ├── __main__.py │ ├── __version__.py │ ├── behave/ │ │ ├── __init__.py │ │ ├── behave_helper.py │ │ ├── behave_sb.py │ │ └── steps.py │ ├── common/ │ │ ├── ReadMe.md │ │ ├── __init__.py │ │ ├── decorators.py │ │ ├── encryption.py │ │ ├── exceptions.py │ │ ├── obfuscate.py │ │ └── unobfuscate.py │ ├── config/ │ │ ├── __init__.py │ │ ├── ad_block_list.py │ │ ├── proxy_list.py │ │ └── settings.py │ ├── console_scripts/ │ │ ├── ReadMe.md │ │ ├── __init__.py │ │ ├── logo_helper.py │ │ ├── rich_helper.py │ │ ├── run.py │ │ ├── sb_behave_gui.py │ │ ├── sb_caseplans.py │ │ ├── sb_commander.py │ │ ├── sb_install.py │ │ ├── sb_mkchart.py │ │ ├── sb_mkdir.py │ │ ├── sb_mkfile.py │ │ ├── sb_mkpres.py │ │ ├── sb_mkrec.py │ │ ├── sb_objectify.py │ │ ├── sb_print.py │ │ └── sb_recorder.py │ ├── core/ │ │ ├── __init__.py │ │ ├── application_manager.py │ │ ├── browser_launcher.py │ │ ├── capabilities_parser.py │ │ ├── colored_traceback.py │ │ ├── create_db_tables.sql │ │ ├── detect_b_ver.py │ │ ├── download_helper.py │ │ ├── encoded_images.py │ │ ├── jqc_helper.py │ │ ├── log_helper.py │ │ ├── mysql.py │ │ ├── proxy_helper.py │ │ ├── recorder_helper.py │ │ ├── report_helper.py │ │ ├── s3_manager.py │ │ ├── sb_cdp.py │ │ ├── sb_driver.py │ │ ├── session_helper.py │ │ ├── settings_parser.py │ │ ├── style_sheet.py │ │ ├── testcase_manager.py │ │ ├── tour_helper.py │ │ └── visual_helper.py │ ├── drivers/ │ │ ├── ReadMe.md │ │ ├── __init__.py │ │ ├── atlas_drivers/ │ │ │ └── __init__.py │ │ ├── brave_drivers/ │ │ │ └── __init__.py │ │ ├── cft_drivers/ │ │ │ └── __init__.py │ │ ├── chromium_drivers/ │ │ │ └── __init__.py │ │ ├── chs_drivers/ │ │ │ └── __init__.py │ │ ├── comet_drivers/ │ │ │ └── __init__.py │ │ └── opera_drivers/ │ │ └── __init__.py │ ├── extensions/ │ │ ├── ReadMe.md │ │ ├── __init__.py │ │ └── firefox_addon.xpi │ ├── fixtures/ │ │ ├── __init__.py │ │ ├── base_case.py │ │ ├── constants.py │ │ ├── css_to_xpath.py │ │ ├── errors.py │ │ ├── js_utils.py │ │ ├── page_actions.py │ │ ├── page_utils.py │ │ ├── shared_utils.py │ │ ├── unittest_helper.py │ │ ├── words.py │ │ └── xpath_to_css.py │ ├── js_code/ │ │ ├── __init__.py │ │ ├── active_css_js.py │ │ ├── live_js.py │ │ └── recorder_js.py │ ├── masterqa/ │ │ ├── ReadMe.md │ │ ├── __init__.py │ │ └── master_qa.py │ ├── plugins/ │ │ ├── __init__.py │ │ ├── base_plugin.py │ │ ├── basic_test_info.py │ │ ├── db_reporting_plugin.py │ │ ├── driver_manager.py │ │ ├── page_source.py │ │ ├── pytest_plugin.py │ │ ├── s3_logging_plugin.py │ │ ├── sb_manager.py │ │ ├── screen_shots.py │ │ └── selenium_plugin.py │ ├── resources/ │ │ ├── ReadMe.md │ │ └── __init__.py │ ├── translate/ │ │ ├── __init__.py │ │ ├── chinese.py │ │ ├── dutch.py │ │ ├── french.py │ │ ├── italian.py │ │ ├── japanese.py │ │ ├── korean.py │ │ ├── master_dict.py │ │ ├── portuguese.py │ │ ├── russian.py │ │ ├── spanish.py │ │ └── translator.py │ ├── undetected/ │ │ ├── __init__.py │ │ ├── cdp.py │ │ ├── cdp_driver/ │ │ │ ├── __init__.py │ │ │ ├── _contradict.py │ │ │ ├── browser.py │ │ │ ├── cdp_util.py │ │ │ ├── config.py │ │ │ ├── connection.py │ │ │ ├── element.py │ │ │ └── tab.py │ │ ├── dprocess.py │ │ ├── options.py │ │ ├── patcher.py │ │ ├── reactor.py │ │ └── webelement.py │ └── utilities/ │ ├── __init__.py │ ├── selenium_grid/ │ │ ├── ReadMe.md │ │ ├── __init__.py │ │ ├── download_selenium_server.py │ │ ├── font_color │ │ ├── grid-hub │ │ ├── grid-node │ │ ├── grid_hub.py │ │ ├── grid_node.py │ │ ├── register-grid-node.bat │ │ ├── register-grid-node.sh │ │ ├── start-grid-hub.bat │ │ └── start-grid-hub.sh │ └── selenium_ide/ │ ├── ReadMe.md │ ├── __init__.py │ └── convert_ide.py ├── setup.cfg ├── setup.py ├── virtualenv_install.sh ├── win_install.bat └── win_virtualenv.bat