├── .gitignore
├── .idea
├── .gitignore
├── LambdaTest-Selenium4-Java-Tutorial.iml
├── aws.xml
├── checkstyle-idea.xml
├── compiler.xml
├── jarRepositories.xml
├── libraries
│ ├── Maven__antlr_antlr_2_7_2.xml
│ ├── Maven__aopalliance_aopalliance_1_0.xml
│ ├── Maven__com_aventstack_extentreports_5_0_9.xml
│ ├── Maven__com_epam_reportportal_agent_java_junit_5_1_1.xml
│ ├── Maven__com_epam_reportportal_client_java_5_1_9.xml
│ ├── Maven__com_epam_reportportal_commons_model_5_0_0.xml
│ ├── Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_0.xml
│ ├── Maven__com_fasterxml_jackson_core_jackson_core_2_13_0.xml
│ ├── Maven__com_fasterxml_jackson_core_jackson_databind_2_13_0.xml
│ ├── Maven__com_google_auto_auto_common_1_2.xml
│ ├── Maven__com_google_auto_service_auto_service_1_0_1.xml
│ ├── Maven__com_google_auto_service_auto_service_annotations_1_0_1.xml
│ ├── Maven__com_google_code_findbugs_jsr305_3_0_2.xml
│ ├── Maven__com_google_code_gson_gson_2_8_6.xml
│ ├── Maven__com_google_guava_failureaccess_1_0_1.xml
│ ├── Maven__com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava.xml
│ ├── Maven__com_google_inject_guice_no_aop_4_2_2.xml
│ ├── Maven__com_google_j2objc_j2objc_annotations_1_3.xml
│ ├── Maven__com_nordstrom_tools_guava_agent_30_1_1a.xml
│ ├── Maven__com_nordstrom_tools_java_utils_2_1_0.xml
│ ├── Maven__com_nordstrom_tools_junit_foundation_15_3_5.xml
│ ├── Maven__com_nordstrom_tools_settings_2_3_10.xml
│ ├── Maven__com_squareup_okhttp3_logging_interceptor_3_14_9.xml
│ ├── Maven__com_squareup_okhttp3_okhttp_3_14_9.xml
│ ├── Maven__com_squareup_okio_okio_1_17_2.xml
│ ├── Maven__com_squareup_retrofit2_adapter_rxjava2_2_9_0.xml
│ ├── Maven__com_squareup_retrofit2_converter_jackson_2_9_0.xml
│ ├── Maven__com_squareup_retrofit2_converter_scalars_2_9_0.xml
│ ├── Maven__com_squareup_retrofit2_retrofit_2_9_0.xml
│ ├── Maven__com_sun_activation_jakarta_activation_1_2_2.xml
│ ├── Maven__com_thoughtworks_qdox_qdox_2_0_0.xml
│ ├── Maven__com_typesafe_netty_netty_reactive_streams_2_0_4.xml
│ ├── Maven__commons_beanutils_commons_beanutils_1_9_4.xml
│ ├── Maven__commons_chain_commons_chain_1_1.xml
│ ├── Maven__commons_codec_commons_codec_1_13.xml
│ ├── Maven__commons_collections_commons_collections_3_2_2.xml
│ ├── Maven__commons_digester_commons_digester_1_8.xml
│ ├── Maven__commons_io_commons_io_2_8_0.xml
│ ├── Maven__commons_lang_commons_lang_2_4.xml
│ ├── Maven__commons_logging_commons_logging_1_2.xml
│ ├── Maven__commons_validator_commons_validator_1_3_1.xml
│ ├── Maven__dom4j_dom4j_1_1.xml
│ ├── Maven__io_github_bonigarcia_webdrivermanager_4_3_1.xml
│ ├── Maven__io_netty_netty_codec_socks_4_1_60_Final.xml
│ ├── Maven__io_netty_netty_handler_proxy_4_1_60_Final.xml
│ ├── Maven__io_netty_netty_transport_native_epoll_linux_x86_64_4_1_60_Final.xml
│ ├── Maven__io_netty_netty_transport_native_kqueue_osx_x86_64_4_1_60_Final.xml
│ ├── Maven__io_ous_jtoml_2_0_0.xml
│ ├── Maven__io_qameta_allure_allure_maven_2_11_2.xml
│ ├── Maven__io_reactivex_rxjava2_rxjava_2_2_10.xml
│ ├── Maven__io_reactivex_rxjava3_rxjava_3_0_4.xml
│ ├── Maven__io_swagger_swagger_annotations_1_5_24.xml
│ ├── Maven__javax_annotation_javax_annotation_api_1_2.xml
│ ├── Maven__javax_inject_javax_inject_1.xml
│ ├── Maven__javax_validation_validation_api_2_0_1_Final.xml
│ ├── Maven__junit_junit_4_13_2.xml
│ ├── Maven__net_lingala_zip4j_zip4j_1_3_2.xml
│ ├── Maven__org_apache_commons_commons_compress_1_20.xml
│ ├── Maven__org_apache_commons_commons_configuration2_2_3.xml
│ ├── Maven__org_apache_commons_commons_exec_1_3.xml
│ ├── Maven__org_apache_commons_commons_lang3_3_11.xml
│ ├── Maven__org_apache_httpcomponents_client5_httpclient5_5_0_3.xml
│ ├── Maven__org_apache_httpcomponents_core5_httpcore5_5_0_2.xml
│ ├── Maven__org_apache_httpcomponents_core5_httpcore5_h2_5_0_2.xml
│ ├── Maven__org_apache_httpcomponents_httpclient_4_5_13.xml
│ ├── Maven__org_apache_httpcomponents_httpcore_4_4_13.xml
│ ├── Maven__org_apache_maven_doxia_doxia_core_1_7.xml
│ ├── Maven__org_apache_maven_doxia_doxia_decoration_model_1_7_4.xml
│ ├── Maven__org_apache_maven_doxia_doxia_logging_api_1_7.xml
│ ├── Maven__org_apache_maven_doxia_doxia_module_xhtml_1_7.xml
│ ├── Maven__org_apache_maven_doxia_doxia_sink_api_1_7.xml
│ ├── Maven__org_apache_maven_doxia_doxia_site_renderer_1_7_4.xml
│ ├── Maven__org_apache_maven_doxia_doxia_skin_model_1_7_4.xml
│ ├── Maven__org_apache_maven_maven_artifact_3_8_3.xml
│ ├── Maven__org_apache_maven_maven_builder_support_3_8_3.xml
│ ├── Maven__org_apache_maven_maven_core_3_8_3.xml
│ ├── Maven__org_apache_maven_maven_jxr_3_1_1.xml
│ ├── Maven__org_apache_maven_maven_model_3_8_3.xml
│ ├── Maven__org_apache_maven_maven_model_builder_3_8_3.xml
│ ├── Maven__org_apache_maven_maven_plugin_api_3_8_3.xml
│ ├── Maven__org_apache_maven_maven_repository_metadata_3_8_3.xml
│ ├── Maven__org_apache_maven_maven_resolver_provider_3_8_3.xml
│ ├── Maven__org_apache_maven_maven_settings_3_8_3.xml
│ ├── Maven__org_apache_maven_maven_settings_builder_3_8_3.xml
│ ├── Maven__org_apache_maven_plugin_tools_maven_plugin_annotations_3_6_1.xml
│ ├── Maven__org_apache_maven_plugins_maven_jxr_plugin_3_1_1.xml
│ ├── Maven__org_apache_maven_reporting_maven_reporting_api_3_0.xml
│ ├── Maven__org_apache_maven_reporting_maven_reporting_impl_3_0_0.xml
│ ├── Maven__org_apache_maven_resolver_maven_resolver_api_1_6_3.xml
│ ├── Maven__org_apache_maven_resolver_maven_resolver_impl_1_6_3.xml
│ ├── Maven__org_apache_maven_resolver_maven_resolver_spi_1_6_3.xml
│ ├── Maven__org_apache_maven_resolver_maven_resolver_util_1_6_3.xml
│ ├── Maven__org_apache_maven_shared_maven_artifact_transfer_0_13_1.xml
│ ├── Maven__org_apache_maven_shared_maven_common_artifact_filters_3_1_0.xml
│ ├── Maven__org_apache_maven_shared_maven_shared_utils_3_3_4.xml
│ ├── Maven__org_apache_maven_wagon_wagon_provider_api_2_4.xml
│ ├── Maven__org_apache_struts_struts_core_1_3_8.xml
│ ├── Maven__org_apache_struts_struts_taglib_1_3_8.xml
│ ├── Maven__org_apache_struts_struts_tiles_1_3_8.xml
│ ├── Maven__org_apache_velocity_velocity_1_7.xml
│ ├── Maven__org_apache_velocity_velocity_engine_core_2_0.xml
│ ├── Maven__org_apache_velocity_velocity_tools_2_0.xml
│ ├── Maven__org_apiguardian_apiguardian_api_1_1_2.xml
│ ├── Maven__org_aspectj_aspectjrt_1_9_2.xml
│ ├── Maven__org_aspectj_aspectjweaver_1_9_2.xml
│ ├── Maven__org_asynchttpclient_async_http_client_2_12_3.xml
│ ├── Maven__org_asynchttpclient_async_http_client_netty_utils_2_12_3.xml
│ ├── Maven__org_checkerframework_checker_qual_3_12_0.xml
│ ├── Maven__org_codehaus_plexus_plexus_cipher_2_0.xml
│ ├── Maven__org_codehaus_plexus_plexus_classworlds_2_6_0.xml
│ ├── Maven__org_codehaus_plexus_plexus_component_annotations_2_1_0.xml
│ ├── Maven__org_codehaus_plexus_plexus_container_default_1_0_alpha_30.xml
│ ├── Maven__org_codehaus_plexus_plexus_i18n_1_0_beta_7.xml
│ ├── Maven__org_codehaus_plexus_plexus_interpolation_1_26.xml
│ ├── Maven__org_codehaus_plexus_plexus_java_1_0_6.xml
│ ├── Maven__org_codehaus_plexus_plexus_sec_dispatcher_2_0.xml
│ ├── Maven__org_codehaus_plexus_plexus_utils_3_3_0.xml
│ ├── Maven__org_codehaus_plexus_plexus_velocity_1_2.xml
│ ├── Maven__org_eclipse_sisu_org_eclipse_sisu_inject_0_3_5.xml
│ ├── Maven__org_eclipse_sisu_org_eclipse_sisu_plexus_0_3_5.xml
│ ├── Maven__org_freemarker_freemarker_2_3_30.xml
│ ├── Maven__org_hamcrest_hamcrest_core_1_3.xml
│ ├── Maven__org_jsoup_jsoup_1_13_1.xml
│ ├── Maven__org_junit_jupiter_junit_jupiter_params_5_8_1.xml
│ ├── Maven__org_junit_platform_junit_platform_launcher_1_8_2.xml
│ ├── Maven__org_opentest4j_opentest4j_1_2_0.xml
│ ├── Maven__org_ow2_asm_asm_9_0.xml
│ ├── Maven__org_projectlombok_lombok_1_18_12.xml
│ ├── Maven__org_projectlombok_lombok_1_18_24.xml
│ ├── Maven__org_rauschig_jarchivelib_1_1_0.xml
│ ├── Maven__org_reactivestreams_reactive_streams_1_0_3.xml
│ ├── Maven__org_seleniumhq_selenium_selenium_chrome_driver_4_1_0.xml
│ ├── Maven__org_seleniumhq_selenium_selenium_chromium_driver_4_1_0.xml
│ ├── Maven__org_seleniumhq_selenium_selenium_devtools_v85_4_1_0.xml
│ ├── Maven__org_seleniumhq_selenium_selenium_devtools_v94_4_1_0.xml
│ ├── Maven__org_seleniumhq_selenium_selenium_devtools_v95_4_1_0.xml
│ ├── Maven__org_seleniumhq_selenium_selenium_devtools_v96_4_1_0.xml
│ ├── Maven__org_seleniumhq_selenium_selenium_edge_driver_4_1_0.xml
│ ├── Maven__org_seleniumhq_selenium_selenium_firefox_driver_4_1_0.xml
│ ├── Maven__org_seleniumhq_selenium_selenium_firefox_xpi_driver_4_1_0.xml
│ ├── Maven__org_seleniumhq_selenium_selenium_ie_driver_4_1_0.xml
│ ├── Maven__org_seleniumhq_selenium_selenium_java_4_1_0.xml
│ ├── Maven__org_seleniumhq_selenium_selenium_opera_driver_4_1_0.xml
│ ├── Maven__org_seleniumhq_selenium_selenium_safari_driver_4_1_0.xml
│ ├── Maven__org_seleniumhq_selenium_selenium_support_4_1_0.xml
│ ├── Maven__org_slf4j_slf4j_api_1_7_30.xml
│ ├── Maven__org_sonatype_sisu_sisu_guice_noaop_2_1_7.xml
│ ├── Maven__org_sonatype_sisu_sisu_inject_bean_1_4_2.xml
│ ├── Maven__org_sonatype_sisu_sisu_inject_plexus_1_4_2.xml
│ ├── Maven__oro_oro_2_0_8.xml
│ ├── Maven__pl_pragmatists_JUnitParams_1_1_1.xml
│ ├── Maven__sslext_sslext_1_2_0.xml
│ └── Maven__xmlunit_xmlunit_1_5.xml
├── misc.xml
├── modules.xml
├── uiDesigner.xml
└── vcs.xml
├── LICENSE
├── README.md
├── chapter1-upgrade-selenium4
└── chapter2-relative-locators-selenium4.iml
├── chapter10-cdp-networkemulation
├── pom.xml
└── src
│ └── test
│ └── java
│ ├── DevToolsNetworkEmulationLambdaTestTests.java
│ └── DevToolsNetworkEmulationTests.java
├── chapter11-test-reporting
├── allure-report
│ ├── app.js
│ ├── data
│ │ ├── behaviors.csv
│ │ ├── behaviors.json
│ │ ├── categories.csv
│ │ ├── categories.json
│ │ ├── packages.json
│ │ ├── suites.csv
│ │ ├── suites.json
│ │ ├── test-cases
│ │ │ ├── 1122be3ec7b168e6.json
│ │ │ ├── 146b62a3fd82fc7b.json
│ │ │ ├── 14a9a39ed4b33b77.json
│ │ │ ├── 1b30d676de838992.json
│ │ │ ├── 1ffbfa286101b920.json
│ │ │ ├── 22f020ead092ed35.json
│ │ │ ├── 2b31da8361c17827.json
│ │ │ ├── 2bcabb3dfc312b5c.json
│ │ │ ├── 336ad9c8f7f71874.json
│ │ │ ├── 33d0a0003e34bb00.json
│ │ │ ├── 35d0760d08216fe9.json
│ │ │ ├── 37f7e0557432c522.json
│ │ │ ├── 416cd564ae3736b9.json
│ │ │ ├── 4d6cbb76e733c551.json
│ │ │ ├── 4e7000ae1de6a32d.json
│ │ │ ├── 4ee51069743263b0.json
│ │ │ ├── 533687affff68280.json
│ │ │ ├── 5d212d4ac0358aab.json
│ │ │ ├── 646773a12e919835.json
│ │ │ ├── 696c1e229cc59714.json
│ │ │ ├── 6aa2cb027fb479e0.json
│ │ │ ├── 71c18cc71cb234fd.json
│ │ │ ├── 73f5c30a0391b5f8.json
│ │ │ ├── 78cf3bf7b6c8c4ef.json
│ │ │ ├── 7c900d3ba7d0369d.json
│ │ │ ├── 7d7c04b12fff39ce.json
│ │ │ ├── 7e6ad39ad1a9d2c4.json
│ │ │ ├── 80d0014cd00d90d5.json
│ │ │ ├── 89d0613eec0f3e22.json
│ │ │ ├── 951b26542fcfa7e.json
│ │ │ ├── 98cb7b1714303161.json
│ │ │ ├── 9ed6fa946c66363f.json
│ │ │ ├── 9fa25f09321c7eb0.json
│ │ │ ├── a689092adee26174.json
│ │ │ ├── ab58d1aa59ff890b.json
│ │ │ ├── af89202da6902611.json
│ │ │ ├── b3bb99a40928c9e0.json
│ │ │ ├── bf1a9fe76da4ef8.json
│ │ │ ├── c9be6ac9d5bc1ac9.json
│ │ │ ├── cc85a7de3a29dca4.json
│ │ │ ├── cf27981ba63a29da.json
│ │ │ ├── d09e4e1c3e98ae09.json
│ │ │ ├── d81580e840d62c43.json
│ │ │ ├── de97f3e6983b87e9.json
│ │ │ ├── e46d898f72b86139.json
│ │ │ ├── e5c9b83e684c395b.json
│ │ │ ├── ea00a4e29580ca1b.json
│ │ │ └── efb26eaa041e5c54.json
│ │ └── timeline.json
│ ├── export
│ │ ├── influxDbData.txt
│ │ ├── mail.html
│ │ └── prometheusData.txt
│ ├── favicon.ico
│ ├── history
│ │ ├── categories-trend.json
│ │ ├── duration-trend.json
│ │ ├── history-trend.json
│ │ ├── history.json
│ │ └── retry-trend.json
│ ├── index.html
│ ├── plugins
│ │ ├── behaviors
│ │ │ └── index.js
│ │ ├── packages
│ │ │ └── index.js
│ │ └── screen-diff
│ │ │ ├── index.js
│ │ │ └── styles.css
│ ├── styles.css
│ └── widgets
│ │ ├── behaviors.json
│ │ ├── categories-trend.json
│ │ ├── categories.json
│ │ ├── duration-trend.json
│ │ ├── duration.json
│ │ ├── environment.json
│ │ ├── executors.json
│ │ ├── history-trend.json
│ │ ├── launch.json
│ │ ├── retry-trend.json
│ │ ├── severity.json
│ │ ├── status-chart.json
│ │ ├── suites.json
│ │ └── summary.json
├── allure-results
│ ├── 003a8272-15f3-455e-84fd-610a53eceb20-result.json
│ ├── 047226f9-a295-417e-8fa2-a12c6793ad04-result.json
│ ├── 08624109-d03f-4c95-8d97-191e378821f3-container.json
│ ├── 0ed86473-bb90-4bf2-a665-d9cfe6349216-container.json
│ ├── 109e29f7-2498-4e59-900f-7b47fe0217c8-container.json
│ ├── 10d43317-955f-4f0a-9242-317c4a566a2e-container.json
│ ├── 111facb5-4d63-4e1b-ac6b-970001111e76-container.json
│ ├── 121f9f9c-8e67-4952-bff6-e3fb2fe6df23-result.json
│ ├── 13f8993d-39ba-4e4f-9f71-187f72ee5d98-container.json
│ ├── 253852f4-8f52-4b3f-8496-64e12dcb3b46-container.json
│ ├── 26d893db-5751-499a-8e31-3b86f08102e6-result.json
│ ├── 26fce5ba-23e1-42ee-a31c-3a165f8fe182-result.json
│ ├── 3261acbd-886d-460d-87b5-a95e2d8be5a8-result.json
│ ├── 32cdbf92-64e1-40a6-abf4-1196f8c99a3a-container.json
│ ├── 33789db1-579d-4511-8aec-292abac5e6de-result.json
│ ├── 33ebbd48-65e1-4029-83db-938621d49733-result.json
│ ├── 349e5c08-7249-4153-b4f9-7e87c03332e3-container.json
│ ├── 3a84dbe3-6048-4fd8-b956-282833e0162c-container.json
│ ├── 3bfa9d23-0ede-49b0-9cd6-aab7f07ef544-container.json
│ ├── 3e0b1ce3-f755-4362-830a-deb91317e8c5-container.json
│ ├── 41942ae5-d925-41a6-beab-c56e3a16e1ff-result.json
│ ├── 4858ddd7-3c4f-4a98-80a9-bccb6fb369d3-container.json
│ ├── 4970b32b-938b-4f92-9319-079415a1de64-container.json
│ ├── 532032b2-9385-41c2-9447-c9afd19519f2-result.json
│ ├── 551ecc3f-25c5-4ea1-95b4-60e47dc3e721-result.json
│ ├── 592cc095-bf39-4b6c-943e-50baaa7ba69d-result.json
│ ├── 5bd549f5-fae9-4dcb-80c1-ef81d6488f78-result.json
│ ├── 5cac53fc-0e7b-49c7-814d-7aa1681e7ec1-container.json
│ ├── 5fa7f993-2c0b-4083-9a49-aa94ab35dcb6-result.json
│ ├── 644ab05e-b5ac-4516-8ed4-c622602c24c3-container.json
│ ├── 651d4da8-8923-4159-84cd-c894406f1bb5-container.json
│ ├── 6631ae30-10d7-45a0-8021-f5eaab2294db-result.json
│ ├── 66fca43f-f65a-49e0-947c-a7028f13c269-container.json
│ ├── 6ec5ca7a-bd2c-4e8d-b903-fcf9d49e74fc-container.json
│ ├── 6f113570-caec-4ef8-9c70-edd667c1cdb3-container.json
│ ├── 703e922d-a5c0-4c30-af03-4c2c9bbe9808-container.json
│ ├── 72d53f59-1fc7-4354-979c-c8ebabf14806-result.json
│ ├── 732312e3-1003-4597-8870-216c769630c0-result.json
│ ├── 748c3fb4-d165-4561-af40-83e456fb7c10-result.json
│ ├── 823294f1-a514-495b-9157-468db0f7803f-result.json
│ ├── 823bf863-7569-4ece-96d0-8c1871ccfe48-result.json
│ ├── 840f357e-33b1-4572-b21e-9bd1fb0da704-container.json
│ ├── 8539c05d-2035-4ca8-b16c-4a7e688fd3a7-result.json
│ ├── 87de5331-a64e-4c83-8ce5-ca147a19d9e0-result.json
│ ├── 8a56c078-fcb4-4d4e-93b6-663aa2750914-container.json
│ ├── 8af48c79-82d0-4d36-b3b5-ac78ad4ec96d-result.json
│ ├── 8b6eb467-287c-4696-bda1-1caca7372c10-container.json
│ ├── 8da0d171-69a6-4abe-b6e4-e9b1774e35b0-result.json
│ ├── 8e34148e-dac9-44d5-99a7-8e91ec103bcb-container.json
│ ├── 9198582c-65e4-406a-8c2f-6c9bdbb09889-container.json
│ ├── 960c2153-e9d8-4af4-8cb8-9f4917c8dad9-result.json
│ ├── 9751dff7-76bf-4703-9e1f-714410a49aaf-container.json
│ ├── 99c8cf9b-2308-41be-a188-8dc06c9aef06-result.json
│ ├── 9a3f43a9-1687-48e8-b5ab-9776b5e69711-result.json
│ ├── 9a77d441-f032-4720-ab5d-8ca86956c570-container.json
│ ├── 9b35e8c2-8cb4-42c1-8189-494833947bc1-container.json
│ ├── 9c50e56e-f039-4e1d-8311-1db644f9e78f-container.json
│ ├── 9e6fdbfa-6cc4-47e3-ac5b-6b7915786b6f-container.json
│ ├── 9f9c91bf-5d28-4e70-a95c-9356febb0a4d-container.json
│ ├── a24684d6-2329-4d29-a71e-ac68334c5b17-container.json
│ ├── a3d63925-3cd8-445c-b302-b6624c5a4edf-container.json
│ ├── a765866c-a1cc-4667-86cd-3c1e79c36b26-container.json
│ ├── a7c0356f-6573-448b-93bb-1be2f6700d6a-container.json
│ ├── abc91aed-b2f1-4083-9b11-96a33acc0b18-container.json
│ ├── adccc158-b624-4a23-93f5-f42dc5b41520-container.json
│ ├── adda16e1-bd54-491e-941f-a79c625247fd-container.json
│ ├── b126c314-0c16-4744-b6b3-13cf6545a016-container.json
│ ├── b1b662d4-59ce-40a7-abdf-21ff30f3e762-container.json
│ ├── b31e427f-a4a5-4fa9-8c63-9497bf1680be-result.json
│ ├── b4a4cf53-5cd6-4b77-8c5f-a935f5090833-result.json
│ ├── b6a4b067-4458-4597-ae73-83b9b0efb933-result.json
│ ├── bbf1f5fd-0074-40e7-af57-f3c2fccc08d8-result.json
│ ├── c0289780-127f-433d-8e16-aacce410697f-result.json
│ ├── c1386ace-2f18-452c-9e10-53bcff240444-result.json
│ ├── c2f9c032-4303-49bc-a54c-657c35ef89cb-result.json
│ ├── ca9d0e99-acd0-4f62-802c-5dbb384758bb-result.json
│ ├── cf6f7d19-76e8-4ba0-ab89-3f34c1526deb-result.json
│ ├── d0585480-e624-4850-9619-1ca83f21affd-result.json
│ ├── d095126e-13cc-4d2c-8f8a-243eaa672f8f-container.json
│ ├── d16f875f-5538-40c3-93d1-32bd12a129ef-container.json
│ ├── d78b8cb7-9ffa-428f-9c04-174515722462-container.json
│ ├── d912c07c-7911-4090-a1f8-6c1d46c3464b-result.json
│ ├── d98fc60e-0549-43e6-b5bd-b1fc53485e26-result.json
│ ├── df43a624-e259-4ca2-92c5-2e88b68582be-result.json
│ ├── e1276b51-82ff-425c-be7f-7086dfca8b10-result.json
│ ├── e5001eee-38e0-4b02-adae-d3c1a58e8ba5-result.json
│ ├── e6f5abe0-1d7c-49bb-861e-477bd6e0390d-result.json
│ ├── e8a7abb4-a7a2-470d-be8d-e25e86a7c867-container.json
│ ├── ea513901-9e2d-42bb-b58b-e4fa72eeb7b8-result.json
│ ├── ea64b592-6b71-4c22-945a-8f7593c12764-result.json
│ ├── ec55883b-e754-4a43-8074-3d95a33d4b23-container.json
│ ├── edd2dd29-5b76-4587-a353-69a8893f3a99-container.json
│ ├── eeabb5a9-b89d-439d-9fdf-f091059545e1-result.json
│ ├── f0c182ae-a0eb-48eb-94c9-640e98ea0916-container.json
│ ├── f5455136-999d-4377-8293-e398ed2a1ef0-container.json
│ ├── f6a7066d-f463-4ad3-ae73-c7ea68652b2b-result.json
│ ├── f80d8c0d-d3bc-4337-89f7-5460515e7610-container.json
│ ├── f9dff448-a6eb-479e-842a-6c4122d66099-container.json
│ ├── fb1be74f-e6ca-4e3f-a3e6-842d47d865fc-result.json
│ └── fedb8f81-c8cc-4c82-9486-fe6729d80083-container.json
├── pom.xml
├── results.html
├── src
│ ├── main
│ │ └── resources
│ │ │ ├── junit-platform.properties
│ │ │ ├── logback.xml
│ │ │ └── reportportal.properties
│ └── test
│ │ └── java
│ │ ├── ToDoAllureTests.java
│ │ ├── ToDoExtentReportTests.java
│ │ └── WebTechnology.java
└── target
│ ├── classes
│ ├── junit-platform.properties
│ ├── logback.xml
│ └── reportportal.properties
│ └── maven-status
│ └── maven-compiler-plugin
│ ├── compile
│ └── default-compile
│ │ └── inputFiles.lst
│ └── testCompile
│ └── default-testCompile
│ ├── createdFiles.lst
│ └── inputFiles.lst
├── chapter12-signup-forms
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ ├── factories
│ │ └── UserFactory.java
│ │ ├── models
│ │ └── User.java
│ │ ├── pages
│ │ ├── AccountSuccessPage.java
│ │ └── RegistrationPage.java
│ │ └── utilities
│ │ └── TimestampBuilder.java
│ └── test
│ └── java
│ └── signup
│ ├── SignupClientSideValidationTests.java
│ ├── SignupLambdatestTests.java
│ ├── SignupServerSideValidationsTests.java
│ ├── SignupTests.java
│ └── SignupUsabilityTests.java
├── chapter13-email-testing
├── pom.xml
├── src
│ ├── main
│ │ ├── java
│ │ │ ├── factories
│ │ │ │ └── UserFactory.java
│ │ │ ├── infrastructure
│ │ │ │ ├── MailslurpService.java
│ │ │ │ └── TestmailService.java
│ │ │ ├── models
│ │ │ │ ├── User.java
│ │ │ │ └── emails
│ │ │ │ │ ├── EmailsItem.java
│ │ │ │ │ ├── EmailsResponse.java
│ │ │ │ │ ├── FromParsedItem.java
│ │ │ │ │ └── ToParsedItem.java
│ │ │ └── utilities
│ │ │ │ ├── ResourcesReader.java
│ │ │ │ └── TimestampBuilder.java
│ │ └── resources
│ │ │ └── sample-email.html
│ └── test
│ │ └── java
│ │ └── signup
│ │ ├── EmailInboxesLambdatestTests.java
│ │ └── EmailInboxesTests.java
└── target
│ └── classes
│ └── sample-email.html
├── chapter14-handling-captcha
├── pom.xml
└── src
│ └── test
│ └── java
│ └── captcha
│ └── CaptchaHandlingTests.java
├── chapter15-handling-cookies
├── pom.xml
└── src
│ └── test
│ └── java
│ └── cookies
│ └── HandlingCookiesTests.java
├── chapter16-handling-waits
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ ├── adapterpattern
│ │ ├── Browser.java
│ │ ├── Driver.java
│ │ ├── DriverAdapter.java
│ │ ├── Element.java
│ │ └── ElementAdapter.java
│ │ ├── decoratorpattern
│ │ ├── Browser.java
│ │ ├── Driver.java
│ │ ├── DriverDecorator.java
│ │ ├── Element.java
│ │ ├── ElementDecorator.java
│ │ ├── LogElement.java
│ │ ├── LoggingDriver.java
│ │ ├── WebCoreDriver.java
│ │ └── WebCoreElement.java
│ │ └── proxypattern
│ │ └── WebDriverProxy.java
│ └── test
│ └── java
│ ├── adapterpattern
│ └── ProductPurchaseTests.java
│ ├── decoratorpattern
│ └── ProductPurchaseTests.java
│ ├── hardcodedpauses
│ └── ProductPurchaseTests.java
│ ├── proxypattern
│ └── ProductPurchaseTests.java
│ └── webdriverwait
│ └── ProductPurchaseTests.java
├── chapter17-handling-exceptions
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ ├── adapterpattern
│ │ ├── Browser.java
│ │ ├── Driver.java
│ │ ├── DriverAdapter.java
│ │ ├── Element.java
│ │ └── ElementAdapter.java
│ │ ├── decoratorpattern
│ │ ├── Browser.java
│ │ ├── Driver.java
│ │ ├── DriverDecorator.java
│ │ ├── Element.java
│ │ ├── ElementDecorator.java
│ │ ├── LogElement.java
│ │ ├── LoggingDriver.java
│ │ ├── WebCoreDriver.java
│ │ └── WebCoreElement.java
│ │ ├── exceptions
│ │ └── AnalyzedTestException.java
│ │ └── proxypattern
│ │ └── WebDriverProxy.java
│ └── test
│ └── java
│ ├── adapterpattern
│ └── ProductPurchaseTests.java
│ ├── decoratorpattern
│ └── ProductPurchaseTests.java
│ ├── hardcodedpauses
│ └── ProductPurchaseTests.java
│ ├── proxypattern
│ └── ProductPurchaseTests.java
│ └── webdriverwait
│ ├── ProductPurchaseTests.java
│ └── ProductPurchaseTestsLambdatest.java
├── chapter18-event-listeners
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ ├── adapterpattern
│ │ ├── Browser.java
│ │ ├── Driver.java
│ │ ├── DriverAdapter.java
│ │ ├── Element.java
│ │ └── ElementAdapter.java
│ │ ├── decoratorpattern
│ │ ├── Browser.java
│ │ ├── Driver.java
│ │ ├── DriverDecorator.java
│ │ ├── Element.java
│ │ ├── ElementDecorator.java
│ │ ├── LogElement.java
│ │ ├── LoggingDriver.java
│ │ ├── WebCoreDriver.java
│ │ └── WebCoreElement.java
│ │ ├── listeners
│ │ ├── EventListener.java
│ │ ├── ExceptionAnalysisWebDriverListener.java
│ │ ├── HighlightElementWebDriverListener.java
│ │ ├── Log.java
│ │ ├── LogWebDriverListener.java
│ │ ├── LoggerActionEventArgs.java
│ │ ├── NotificationWebDriverListener.java
│ │ └── exceptions
│ │ │ ├── AnalyzedTestException.java
│ │ │ ├── ErrorPageExceptionHandler.java
│ │ │ ├── ExceptionAnalysationHandler.java
│ │ │ ├── ExceptionAnalyser.java
│ │ │ ├── HtmlSourceExceptionHandler.java
│ │ │ ├── LoginPageUrlExceptionHandler.java
│ │ │ ├── NotFoundPageExceptionHandler.java
│ │ │ └── UrlExceptionHandler.java
│ │ └── proxypattern
│ │ └── WebDriverProxy.java
│ └── test
│ └── java
│ ├── adapterpattern
│ └── ProductPurchaseTests.java
│ ├── decoratorpattern
│ └── ProductPurchaseTests.java
│ ├── hardcodedpauses
│ └── ProductPurchaseTests.java
│ ├── listeners
│ ├── InitializationScriptLambdatestTests.java
│ └── InitializationScriptTests.java
│ ├── proxypattern
│ └── ProductPurchaseTests.java
│ └── webdriverwait
│ └── ProductPurchaseTests.java
├── chapter2-relativelocators-selenium4
├── pom.xml
├── relative-locators-test.html
└── src
│ └── test
│ └── java
│ ├── RelativeLocatorsTests.java
│ └── ZipInfo.java
├── chapter3-initializationscripts-selenium4
├── pom.xml
└── src
│ └── test
│ └── java
│ ├── InitializationScriptLambdatestTests.java
│ ├── InitializationScriptTests.java
│ ├── WebDriverListenerExtensions.java
│ └── ZipInfo.java
├── chapter4-seleniumide
├── SELENIUM_IDE_DEMO.side
├── TODO_APP.side
└── TODO_APP_CLI.side
├── chapter5-geolocation-testing
├── pom.xml
└── src
│ └── test
│ └── java
│ ├── DevToolsGeoLocationTestingLambdatestTests.java
│ └── DevToolsGeoLocationTests.java
├── chapter6-responsive-testing
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── layout
│ │ ├── ComparingOperators.java
│ │ ├── FinishValidationBuilder.java
│ │ ├── LayoutComponent.java
│ │ ├── LayoutComponentValidationsBuilder.java
│ │ ├── LayoutOptions.java
│ │ ├── LayoutPreciseValidationBuilder.java
│ │ ├── LayoutValidationEventArgs.java
│ │ ├── LayoutWebElement.java
│ │ ├── LayoutWebSelect.java
│ │ ├── Screen.java
│ │ ├── SpecialComponents.java
│ │ └── Viewport.java
│ └── test
│ └── java
│ ├── DevToolsResponsiveTestingLambdatestTests.java
│ └── DevToolsResponsiveTests.java
├── chapter7-cdp-troubleshooting
├── pom.xml
└── src
│ └── test
│ └── java
│ └── troubleshooting
│ ├── DevToolsTroubleshootingLambdatestTests.java
│ └── DevToolsTroubleshootingTests.java
├── chapter8-cdp-capturehttptraffic
├── pom.xml
└── src
│ └── test
│ └── java
│ ├── CaptureHttpTrafficTests.java
│ └── DevToolsCaptureHttpTrafficLambdatestTests.java
└── chapter9-cdp-performancemetrics
├── pom.xml
└── src
└── test
└── java
├── CapturePerformanceMetricsTests.java
└── DevToolsCapturePerformanceMetricsLambdaTestTests.java
/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled class file
2 | *.class
3 |
4 | # Log file
5 | *.log
6 |
7 | # BlueJ files
8 | *.ctxt
9 |
10 | # Mobile Tools for Java (J2ME)
11 | .mtj.tmp/
12 |
13 | # Package Files #
14 | *.jar
15 | *.war
16 | *.nar
17 | *.ear
18 | *.zip
19 | *.tar.gz
20 | *.rar
21 |
22 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
23 | hs_err_pid*
24 |
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/.idea/LambdaTest-Selenium4-Java-Tutorial.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/aws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/.idea/checkstyle-idea.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/.idea/jarRepositories.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__antlr_antlr_2_7_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__aopalliance_aopalliance_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_aventstack_extentreports_5_0_9.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_epam_reportportal_agent_java_junit_5_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_epam_reportportal_client_java_5_1_9.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_epam_reportportal_commons_model_5_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_13_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_google_auto_auto_common_1_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_google_auto_service_auto_service_1_0_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_google_auto_service_auto_service_annotations_1_0_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_google_code_findbugs_jsr305_3_0_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_google_code_gson_gson_2_8_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_google_guava_failureaccess_1_0_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_google_inject_guice_no_aop_4_2_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_google_j2objc_j2objc_annotations_1_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_nordstrom_tools_guava_agent_30_1_1a.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_nordstrom_tools_java_utils_2_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_nordstrom_tools_junit_foundation_15_3_5.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_nordstrom_tools_settings_2_3_10.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_squareup_okhttp3_logging_interceptor_3_14_9.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_squareup_okhttp3_okhttp_3_14_9.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_squareup_okio_okio_1_17_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_squareup_retrofit2_adapter_rxjava2_2_9_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_squareup_retrofit2_converter_jackson_2_9_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_squareup_retrofit2_converter_scalars_2_9_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_squareup_retrofit2_retrofit_2_9_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_sun_activation_jakarta_activation_1_2_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_thoughtworks_qdox_qdox_2_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__com_typesafe_netty_netty_reactive_streams_2_0_4.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_4.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__commons_chain_commons_chain_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__commons_codec_commons_codec_1_13.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__commons_digester_commons_digester_1_8.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__commons_io_commons_io_2_8_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__commons_lang_commons_lang_2_4.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__commons_logging_commons_logging_1_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__commons_validator_commons_validator_1_3_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__dom4j_dom4j_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__io_github_bonigarcia_webdrivermanager_4_3_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__io_netty_netty_codec_socks_4_1_60_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__io_netty_netty_handler_proxy_4_1_60_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_x86_64_4_1_60_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_x86_64_4_1_60_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__io_ous_jtoml_2_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__io_qameta_allure_allure_maven_2_11_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__io_reactivex_rxjava2_rxjava_2_2_10.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__io_reactivex_rxjava3_rxjava_3_0_4.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__io_swagger_swagger_annotations_1_5_24.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__javax_annotation_javax_annotation_api_1_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__javax_inject_javax_inject_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__junit_junit_4_13_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__net_lingala_zip4j_zip4j_1_3_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_commons_commons_compress_1_20.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_commons_commons_configuration2_2_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_commons_commons_exec_1_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_11.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_httpcomponents_client5_httpclient5_5_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_httpcomponents_core5_httpcore5_5_0_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_httpcomponents_core5_httpcore5_h2_5_0_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_13.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_13.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_doxia_doxia_core_1_7.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_doxia_doxia_decoration_model_1_7_4.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_doxia_doxia_logging_api_1_7.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_doxia_doxia_module_xhtml_1_7.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_doxia_doxia_sink_api_1_7.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_doxia_doxia_site_renderer_1_7_4.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_doxia_doxia_skin_model_1_7_4.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_maven_artifact_3_8_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_maven_builder_support_3_8_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_maven_core_3_8_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_maven_jxr_3_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_maven_model_3_8_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_maven_model_builder_3_8_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_maven_plugin_api_3_8_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_maven_repository_metadata_3_8_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_maven_resolver_provider_3_8_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_maven_settings_3_8_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_maven_settings_builder_3_8_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_plugin_tools_maven_plugin_annotations_3_6_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_plugins_maven_jxr_plugin_3_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_reporting_maven_reporting_api_3_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_reporting_maven_reporting_impl_3_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_resolver_maven_resolver_api_1_6_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_resolver_maven_resolver_impl_1_6_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_resolver_maven_resolver_spi_1_6_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_resolver_maven_resolver_util_1_6_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_shared_maven_artifact_transfer_0_13_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_shared_maven_common_artifact_filters_3_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_shared_maven_shared_utils_3_3_4.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_maven_wagon_wagon_provider_api_2_4.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_struts_struts_core_1_3_8.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_struts_struts_taglib_1_3_8.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_struts_struts_tiles_1_3_8.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_velocity_velocity_1_7.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_velocity_velocity_engine_core_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apache_velocity_velocity_tools_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_aspectj_aspectjrt_1_9_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_asynchttpclient_async_http_client_2_12_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_asynchttpclient_async_http_client_netty_utils_2_12_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_checkerframework_checker_qual_3_12_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_codehaus_plexus_plexus_cipher_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_codehaus_plexus_plexus_classworlds_2_6_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_codehaus_plexus_plexus_component_annotations_2_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_codehaus_plexus_plexus_container_default_1_0_alpha_30.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_codehaus_plexus_plexus_i18n_1_0_beta_7.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_codehaus_plexus_plexus_interpolation_1_26.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_codehaus_plexus_plexus_java_1_0_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_codehaus_plexus_plexus_sec_dispatcher_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_codehaus_plexus_plexus_utils_3_3_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_codehaus_plexus_plexus_velocity_1_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_eclipse_sisu_org_eclipse_sisu_inject_0_3_5.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_eclipse_sisu_org_eclipse_sisu_plexus_0_3_5.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_freemarker_freemarker_2_3_30.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_jsoup_jsoup_1_13_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_junit_platform_junit_platform_launcher_1_8_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_ow2_asm_asm_9_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_projectlombok_lombok_1_18_12.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_projectlombok_lombok_1_18_24.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_rauschig_jarchivelib_1_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_chrome_driver_4_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_chromium_driver_4_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_devtools_v85_4_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_devtools_v94_4_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_devtools_v95_4_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_devtools_v96_4_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_edge_driver_4_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_firefox_driver_4_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_firefox_xpi_driver_4_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_ie_driver_4_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_java_4_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_opera_driver_4_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_safari_driver_4_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_support_4_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_sonatype_sisu_sisu_guice_noaop_2_1_7.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_sonatype_sisu_sisu_inject_bean_1_4_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__org_sonatype_sisu_sisu_inject_plexus_1_4_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__oro_oro_2_0_8.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__pl_pragmatists_JUnitParams_1_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__sslext_sslext_1_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Maven__xmlunit_xmlunit_1_5.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # LambdaTest-Selenium4-Java-Tutorial
2 | Contains Code from the LambdaTest Selenium 4 Java Tutorial
3 |
--------------------------------------------------------------------------------
/chapter1-upgrade-selenium4/chapter2-relative-locators-selenium4.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/data/behaviors.csv:
--------------------------------------------------------------------------------
1 | "Epic","Feature","Story","FAILED","BROKEN","PASSED","SKIPPED","UNKNOWN"
2 | "Selenium 4 Series","Junit 5 Data-driven Tests Selenium 4","Advanced support for bdd annotations","0","0","24","0","0"
3 |
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/data/categories.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AutomateThePlanet/LambdaTest-Selenium4-Java-Tutorial/d89c3a41f1e9f56aedbdbcd8b994a14e3aba8bc2/chapter11-test-reporting/allure-report/data/categories.csv
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/data/categories.json:
--------------------------------------------------------------------------------
1 | {
2 | "uid" : "4b4757e66a1912dae1a509f688f20b0f",
3 | "name" : "categories",
4 | "children" : [ ]
5 | }
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/export/influxDbData.txt:
--------------------------------------------------------------------------------
1 | launch_status failed=0 1653213032000000000
2 | launch_status broken=0 1653213032000000000
3 | launch_status passed=24 1653213032000000000
4 | launch_status skipped=0 1653213032000000000
5 | launch_status unknown=0 1653213032000000000
6 | launch_time duration=116364 1653213032000000000
7 | launch_time min_duration=1754 1653213032000000000
8 | launch_time max_duration=37275 1653213032000000000
9 | launch_time sum_duration=116009 1653213032000000000
10 | launch_retries retries=24 1653213032000000000
11 | launch_retries run=24 1653213032000000000
12 |
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/export/mail.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Allure Report summary mail
6 |
7 |
8 | Mail body
9 |
10 |
11 |
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/export/prometheusData.txt:
--------------------------------------------------------------------------------
1 | launch_status_failed 0
2 | launch_status_broken 0
3 | launch_status_passed 24
4 | launch_status_skipped 0
5 | launch_status_unknown 0
6 | launch_time_duration 116364
7 | launch_time_min_duration 1754
8 | launch_time_max_duration 37275
9 | launch_time_sum_duration 116009
10 | launch_retries_retries 24
11 | launch_retries_run 24
12 |
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AutomateThePlanet/LambdaTest-Selenium4-Java-Tutorial/d89c3a41f1e9f56aedbdbcd8b994a14e3aba8bc2/chapter11-test-reporting/allure-report/favicon.ico
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/history/categories-trend.json:
--------------------------------------------------------------------------------
1 | [ {
2 | "data" : { }
3 | } ]
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/history/duration-trend.json:
--------------------------------------------------------------------------------
1 | [ {
2 | "data" : {
3 | "duration" : 116364
4 | }
5 | } ]
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/history/history-trend.json:
--------------------------------------------------------------------------------
1 | [ {
2 | "data" : {
3 | "failed" : 0,
4 | "broken" : 0,
5 | "skipped" : 0,
6 | "passed" : 24,
7 | "unknown" : 0,
8 | "total" : 24
9 | }
10 | } ]
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/history/retry-trend.json:
--------------------------------------------------------------------------------
1 | [ {
2 | "data" : {
3 | "run" : 24,
4 | "retry" : 24
5 | }
6 | } ]
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Allure Report
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/plugins/screen-diff/styles.css:
--------------------------------------------------------------------------------
1 | .screen-diff__switchers {
2 | margin-bottom: 1em;
3 | }
4 |
5 | .screen-diff__switchers label + label {
6 | margin-left: 1em;
7 | }
8 |
9 | .screen-diff__overlay {
10 | position: relative;
11 | cursor: col-resize;
12 | }
13 |
14 | .screen-diff__container {
15 | overflow-x: auto;
16 | }
17 |
18 | .screen-diff__image-over {
19 | top: 0;
20 | left: 0;
21 | bottom: 0;
22 | background: #fff;
23 | position: absolute;
24 | overflow: hidden;
25 | box-shadow: 2px 0 1px -1px #aaa;
26 | }
27 |
28 | .screen-diff-error {
29 | color: #fd5a3e;
30 | }
31 |
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/widgets/behaviors.json:
--------------------------------------------------------------------------------
1 | {
2 | "total" : 1,
3 | "items" : [ {
4 | "uid" : "52cd1814c53e824957fdf965143928f3",
5 | "name" : "Selenium 4 Series",
6 | "statistic" : {
7 | "failed" : 0,
8 | "broken" : 0,
9 | "skipped" : 0,
10 | "passed" : 1,
11 | "unknown" : 0,
12 | "total" : 1
13 | }
14 | } ]
15 | }
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/widgets/categories-trend.json:
--------------------------------------------------------------------------------
1 | [ {
2 | "data" : { }
3 | } ]
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/widgets/categories.json:
--------------------------------------------------------------------------------
1 | {
2 | "total" : 0,
3 | "items" : [ ]
4 | }
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/widgets/duration-trend.json:
--------------------------------------------------------------------------------
1 | [ {
2 | "data" : {
3 | "duration" : 116364
4 | }
5 | } ]
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/widgets/environment.json:
--------------------------------------------------------------------------------
1 | [ ]
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/widgets/executors.json:
--------------------------------------------------------------------------------
1 | [ ]
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/widgets/history-trend.json:
--------------------------------------------------------------------------------
1 | [ {
2 | "data" : {
3 | "failed" : 0,
4 | "broken" : 0,
5 | "skipped" : 0,
6 | "passed" : 24,
7 | "unknown" : 0,
8 | "total" : 24
9 | }
10 | } ]
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/widgets/launch.json:
--------------------------------------------------------------------------------
1 | [ ]
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/widgets/retry-trend.json:
--------------------------------------------------------------------------------
1 | [ {
2 | "data" : {
3 | "run" : 24,
4 | "retry" : 24
5 | }
6 | } ]
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/widgets/suites.json:
--------------------------------------------------------------------------------
1 | {
2 | "total" : 1,
3 | "items" : [ {
4 | "uid" : "839b282615d3d6ce13aad7c478552eb2",
5 | "name" : "ToDoExtentReportTests",
6 | "statistic" : {
7 | "failed" : 0,
8 | "broken" : 0,
9 | "skipped" : 0,
10 | "passed" : 24,
11 | "unknown" : 0,
12 | "total" : 24
13 | }
14 | } ]
15 | }
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-report/widgets/summary.json:
--------------------------------------------------------------------------------
1 | {
2 | "reportName" : "Allure Report",
3 | "testRuns" : [ ],
4 | "statistic" : {
5 | "failed" : 0,
6 | "broken" : 0,
7 | "skipped" : 0,
8 | "passed" : 24,
9 | "unknown" : 0,
10 | "total" : 24
11 | },
12 | "time" : {
13 | "start" : 1653212852549,
14 | "stop" : 1653212968913,
15 | "duration" : 116364,
16 | "minDuration" : 1754,
17 | "maxDuration" : 37275,
18 | "sumDuration" : 116009
19 | }
20 | }
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/08624109-d03f-4c95-8d97-191e378821f3-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"08624109-d03f-4c95-8d97-191e378821f3","name":"13. verify todo list created successfully when technology = Closure","children":["960c2153-e9d8-4af4-8cb8-9f4917c8dad9"],"befores":[],"afters":[],"start":1653211779328,"stop":1653211782434}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/0ed86473-bb90-4bf2-a665-d9cfe6349216-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"0ed86473-bb90-4bf2-a665-d9cfe6349216","name":"14. verify todo list created successfully when technology = Vanilla JS","children":["cf6f7d19-76e8-4ba0-ab89-3f34c1526deb"],"befores":[],"afters":[],"start":1653211782438,"stop":1653211785705}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/109e29f7-2498-4e59-900f-7b47fe0217c8-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"109e29f7-2498-4e59-900f-7b47fe0217c8","name":"3. verify todo list created successfully when technology = React","children":["5fa7f993-2c0b-4083-9a49-aa94ab35dcb6"],"befores":[],"afters":[],"start":1653211742721,"stop":1653211747293}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/10d43317-955f-4f0a-9242-317c4a566a2e-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"10d43317-955f-4f0a-9242-317c4a566a2e","name":"ToDoExtentReportTests","children":["bbf1f5fd-0074-40e7-af57-f3c2fccc08d8","551ecc3f-25c5-4ea1-95b4-60e47dc3e721","d0585480-e624-4850-9619-1ca83f21affd","c2f9c032-4303-49bc-a54c-657c35ef89cb","003a8272-15f3-455e-84fd-610a53eceb20","e6f5abe0-1d7c-49bb-861e-477bd6e0390d","592cc095-bf39-4b6c-943e-50baaa7ba69d","121f9f9c-8e67-4952-bff6-e3fb2fe6df23","72d53f59-1fc7-4354-979c-c8ebabf14806","33789db1-579d-4511-8aec-292abac5e6de","9a3f43a9-1687-48e8-b5ab-9776b5e69711","047226f9-a295-417e-8fa2-a12c6793ad04","e1276b51-82ff-425c-be7f-7086dfca8b10","ea513901-9e2d-42bb-b58b-e4fa72eeb7b8","d98fc60e-0549-43e6-b5bd-b1fc53485e26","5bd549f5-fae9-4dcb-80c1-ef81d6488f78","6631ae30-10d7-45a0-8021-f5eaab2294db","33ebbd48-65e1-4029-83db-938621d49733","c0289780-127f-433d-8e16-aacce410697f","fb1be74f-e6ca-4e3f-a3e6-842d47d865fc","e5001eee-38e0-4b02-adae-d3c1a58e8ba5","eeabb5a9-b89d-439d-9fdf-f091059545e1","532032b2-9385-41c2-9447-c9afd19519f2","26d893db-5751-499a-8e31-3b86f08102e6"],"befores":[],"afters":[],"start":1653212851544,"stop":1653212969340}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/111facb5-4d63-4e1b-ac6b-970001111e76-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"111facb5-4d63-4e1b-ac6b-970001111e76","name":"7. verify todo list created successfully when technology = KnockoutJS","children":["592cc095-bf39-4b6c-943e-50baaa7ba69d"],"befores":[],"afters":[],"start":1653212877491,"stop":1653212881063}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/13f8993d-39ba-4e4f-9f71-187f72ee5d98-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"13f8993d-39ba-4e4f-9f71-187f72ee5d98","name":"11. verify todo list created successfully when technology = Dart","children":["9a3f43a9-1687-48e8-b5ab-9776b5e69711"],"befores":[],"afters":[],"start":1653212893195,"stop":1653212896628}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/253852f4-8f52-4b3f-8496-64e12dcb3b46-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"253852f4-8f52-4b3f-8496-64e12dcb3b46","name":"23. verify todo list created successfully when technology = null","children":["ca9d0e99-acd0-4f62-802c-5dbb384758bb"],"befores":[],"afters":[],"start":1653211845788,"stop":1653211847603}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/32cdbf92-64e1-40a6-abf4-1196f8c99a3a-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"32cdbf92-64e1-40a6-abf4-1196f8c99a3a","name":"14. verify todo list created successfully when technology = Vanilla JS","children":["ea513901-9e2d-42bb-b58b-e4fa72eeb7b8"],"befores":[],"afters":[],"start":1653212903214,"stop":1653212906467}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/349e5c08-7249-4153-b4f9-7e87c03332e3-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"349e5c08-7249-4153-b4f9-7e87c03332e3","name":"5. verify todo list created successfully when technology = CanJS","children":["3261acbd-886d-460d-87b5-a95e2d8be5a8"],"befores":[],"afters":[],"start":1653211751408,"stop":1653211754613}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/3a84dbe3-6048-4fd8-b956-282833e0162c-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"3a84dbe3-6048-4fd8-b956-282833e0162c","name":"19. verify todo list created successfully when technology = Mithril","children":["df43a624-e259-4ca2-92c5-2e88b68582be"],"befores":[],"afters":[],"start":1653211833007,"stop":1653211836069}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/3bfa9d23-0ede-49b0-9cd6-aab7f07ef544-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"3bfa9d23-0ede-49b0-9cd6-aab7f07ef544","name":"18. verify todo list created successfully when technology = Dojo","children":["33ebbd48-65e1-4029-83db-938621d49733"],"befores":[],"afters":[],"start":1653212949963,"stop":1653212953362}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/3e0b1ce3-f755-4362-830a-deb91317e8c5-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"3e0b1ce3-f755-4362-830a-deb91317e8c5","name":"20. verify todo list created successfully when technology = Kotlin + React","children":["99c8cf9b-2308-41be-a188-8dc06c9aef06"],"befores":[],"afters":[],"start":1653211836072,"stop":1653211839163}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/4858ddd7-3c4f-4a98-80a9-bccb6fb369d3-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"4858ddd7-3c4f-4a98-80a9-bccb6fb369d3","name":"10. verify todo list created successfully when technology = Angular 2.0","children":["732312e3-1003-4597-8870-216c769630c0"],"befores":[],"afters":[],"start":1653211768784,"stop":1653211772838}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/4970b32b-938b-4f92-9319-079415a1de64-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"4970b32b-938b-4f92-9319-079415a1de64","name":"10. verify todo list created successfully when technology = Angular 2.0","children":["33789db1-579d-4511-8aec-292abac5e6de"],"befores":[],"afters":[],"start":1653212888912,"stop":1653212893191}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/5cac53fc-0e7b-49c7-814d-7aa1681e7ec1-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"5cac53fc-0e7b-49c7-814d-7aa1681e7ec1","name":"9. verify todo list created successfully when technology = Polymer","children":["87de5331-a64e-4c83-8ce5-ca147a19d9e0"],"befores":[],"afters":[],"start":1653211764594,"stop":1653211768779}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/644ab05e-b5ac-4516-8ed4-c622602c24c3-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"644ab05e-b5ac-4516-8ed4-c622602c24c3","name":"9. verify todo list created successfully when technology = Polymer","children":["72d53f59-1fc7-4354-979c-c8ebabf14806"],"befores":[],"afters":[],"start":1653212884912,"stop":1653212888907}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/651d4da8-8923-4159-84cd-c894406f1bb5-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"651d4da8-8923-4159-84cd-c894406f1bb5","name":"11. verify todo list created successfully when technology = Dart","children":["b4a4cf53-5cd6-4b77-8c5f-a935f5090833"],"befores":[],"afters":[],"start":1653211772842,"stop":1653211776163}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/66fca43f-f65a-49e0-947c-a7028f13c269-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"66fca43f-f65a-49e0-947c-a7028f13c269","name":"22. verify todo list created successfully when technology = Vanilla ES6","children":["eeabb5a9-b89d-439d-9fdf-f091059545e1"],"befores":[],"afters":[],"start":1653212962510,"stop":1653212965366}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/6ec5ca7a-bd2c-4e8d-b903-fcf9d49e74fc-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"6ec5ca7a-bd2c-4e8d-b903-fcf9d49e74fc","name":"6. verify todo list created successfully when technology = Ember.js","children":["e6f5abe0-1d7c-49bb-861e-477bd6e0390d"],"befores":[],"afters":[],"start":1653212873610,"stop":1653212877486}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/6f113570-caec-4ef8-9c70-edd667c1cdb3-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"6f113570-caec-4ef8-9c70-edd667c1cdb3","name":"1. verify todo list created successfully when technology = Backbone.js","children":["bbf1f5fd-0074-40e7-af57-f3c2fccc08d8"],"befores":[],"afters":[],"start":1653212852493,"stop":1653212857940}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/703e922d-a5c0-4c30-af03-4c2c9bbe9808-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"703e922d-a5c0-4c30-af03-4c2c9bbe9808","name":"17. verify todo list created successfully when technology = Spine","children":["6631ae30-10d7-45a0-8021-f5eaab2294db"],"befores":[],"afters":[],"start":1653212947027,"stop":1653212949960}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/840f357e-33b1-4572-b21e-9bd1fb0da704-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"840f357e-33b1-4572-b21e-9bd1fb0da704","name":"8. verify todo list created successfully when technology = Marionette.js","children":["121f9f9c-8e67-4952-bff6-e3fb2fe6df23"],"befores":[],"afters":[],"start":1653212881068,"stop":1653212884908}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/8a56c078-fcb4-4d4e-93b6-663aa2750914-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"8a56c078-fcb4-4d4e-93b6-663aa2750914","name":"8. verify todo list created successfully when technology = Marionette.js","children":["b31e427f-a4a5-4fa9-8c63-9497bf1680be"],"befores":[],"afters":[],"start":1653211761103,"stop":1653211764589}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/8b6eb467-287c-4696-bda1-1caca7372c10-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"8b6eb467-287c-4696-bda1-1caca7372c10","name":"21. verify todo list created successfully when technology = Firebase + AngularJS","children":["e5001eee-38e0-4b02-adae-d3c1a58e8ba5"],"befores":[],"afters":[],"start":1653212959064,"stop":1653212962507}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/8e34148e-dac9-44d5-99a7-8e91ec103bcb-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"8e34148e-dac9-44d5-99a7-8e91ec103bcb","name":"2. verify todo list created successfully when technology = AngularJS","children":["8af48c79-82d0-4d36-b3b5-ac78ad4ec96d"],"befores":[],"afters":[],"start":1653211739040,"stop":1653211742717}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/9198582c-65e4-406a-8c2f-6c9bdbb09889-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"9198582c-65e4-406a-8c2f-6c9bdbb09889","name":"23. verify todo list created successfully when technology = null","children":["532032b2-9385-41c2-9447-c9afd19519f2"],"befores":[],"afters":[],"start":1653212965370,"stop":1653212967155}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/9751dff7-76bf-4703-9e1f-714410a49aaf-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"9751dff7-76bf-4703-9e1f-714410a49aaf","name":"3. verify todo list created successfully when technology = React","children":["d0585480-e624-4850-9619-1ca83f21affd"],"befores":[],"afters":[],"start":1653212862078,"stop":1653212866380}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/9a77d441-f032-4720-ab5d-8ca86956c570-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"9a77d441-f032-4720-ab5d-8ca86956c570","name":"18. verify todo list created successfully when technology = Dojo","children":["ea64b592-6b71-4c22-945a-8f7593c12764"],"befores":[],"afters":[],"start":1653211829483,"stop":1653211833004}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/9b35e8c2-8cb4-42c1-8189-494833947bc1-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"9b35e8c2-8cb4-42c1-8189-494833947bc1","name":"20. verify todo list created successfully when technology = Kotlin + React","children":["fb1be74f-e6ca-4e3f-a3e6-842d47d865fc"],"befores":[],"afters":[],"start":1653212956215,"stop":1653212959061}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/9c50e56e-f039-4e1d-8311-1db644f9e78f-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"9c50e56e-f039-4e1d-8311-1db644f9e78f","name":"12. verify todo list created successfully when technology = Elm","children":["b6a4b067-4458-4597-ae73-83b9b0efb933"],"befores":[],"afters":[],"start":1653211776166,"stop":1653211779324}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/9e6fdbfa-6cc4-47e3-ac5b-6b7915786b6f-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"9e6fdbfa-6cc4-47e3-ac5b-6b7915786b6f","name":"6. verify todo list created successfully when technology = Ember.js","children":["8da0d171-69a6-4abe-b6e4-e9b1774e35b0"],"befores":[],"afters":[],"start":1653211754617,"stop":1653211757844}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/9f9c91bf-5d28-4e70-a95c-9356febb0a4d-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"9f9c91bf-5d28-4e70-a95c-9356febb0a4d","name":"1. verify todo list created successfully when technology = Backbone.js","children":["c1386ace-2f18-452c-9e10-53bcff240444"],"befores":[],"afters":[],"start":1653211733048,"stop":1653211739031}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/a24684d6-2329-4d29-a71e-ac68334c5b17-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"a24684d6-2329-4d29-a71e-ac68334c5b17","name":"12. verify todo list created successfully when technology = Elm","children":["047226f9-a295-417e-8fa2-a12c6793ad04"],"befores":[],"afters":[],"start":1653212896632,"stop":1653212900041}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/a3d63925-3cd8-445c-b302-b6624c5a4edf-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"a3d63925-3cd8-445c-b302-b6624c5a4edf","name":"24. verify todo list created successfully when technology = ","children":["8539c05d-2035-4ca8-b16c-4a7e688fd3a7"],"befores":[],"afters":[],"start":1653211847606,"stop":1653211849472}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/a765866c-a1cc-4667-86cd-3c1e79c36b26-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"a765866c-a1cc-4667-86cd-3c1e79c36b26","name":"16. verify todo list created successfully when technology = cujoJS","children":["823294f1-a514-495b-9157-468db0f7803f"],"befores":[],"afters":[],"start":1653211789435,"stop":1653211826532}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/a7c0356f-6573-448b-93bb-1be2f6700d6a-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"a7c0356f-6573-448b-93bb-1be2f6700d6a","name":"verifyToDoListCreatedSuccessfully_withParams(String)","children":["c1386ace-2f18-452c-9e10-53bcff240444","8af48c79-82d0-4d36-b3b5-ac78ad4ec96d","5fa7f993-2c0b-4083-9a49-aa94ab35dcb6","748c3fb4-d165-4561-af40-83e456fb7c10","3261acbd-886d-460d-87b5-a95e2d8be5a8","8da0d171-69a6-4abe-b6e4-e9b1774e35b0","f6a7066d-f463-4ad3-ae73-c7ea68652b2b","b31e427f-a4a5-4fa9-8c63-9497bf1680be","87de5331-a64e-4c83-8ce5-ca147a19d9e0","732312e3-1003-4597-8870-216c769630c0","b4a4cf53-5cd6-4b77-8c5f-a935f5090833","b6a4b067-4458-4597-ae73-83b9b0efb933","960c2153-e9d8-4af4-8cb8-9f4917c8dad9","cf6f7d19-76e8-4ba0-ab89-3f34c1526deb","41942ae5-d925-41a6-beab-c56e3a16e1ff","823294f1-a514-495b-9157-468db0f7803f","26fce5ba-23e1-42ee-a31c-3a165f8fe182","ea64b592-6b71-4c22-945a-8f7593c12764","df43a624-e259-4ca2-92c5-2e88b68582be","99c8cf9b-2308-41be-a188-8dc06c9aef06","d912c07c-7911-4090-a1f8-6c1d46c3464b","823bf863-7569-4ece-96d0-8c1871ccfe48","ca9d0e99-acd0-4f62-802c-5dbb384758bb","8539c05d-2035-4ca8-b16c-4a7e688fd3a7"],"befores":[],"afters":[],"start":1653211733027,"stop":1653211849475}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/abc91aed-b2f1-4083-9b11-96a33acc0b18-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"abc91aed-b2f1-4083-9b11-96a33acc0b18","name":"4. verify todo list created successfully when technology = Vue.js","children":["748c3fb4-d165-4561-af40-83e456fb7c10"],"befores":[],"afters":[],"start":1653211747299,"stop":1653211751404}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/adccc158-b624-4a23-93f5-f42dc5b41520-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"adccc158-b624-4a23-93f5-f42dc5b41520","name":"15. verify todo list created successfully when technology = jQuery","children":["d98fc60e-0549-43e6-b5bd-b1fc53485e26"],"befores":[],"afters":[],"start":1653212906472,"stop":1653212909737}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/adda16e1-bd54-491e-941f-a79c625247fd-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"adda16e1-bd54-491e-941f-a79c625247fd","name":"15. verify todo list created successfully when technology = jQuery","children":["41942ae5-d925-41a6-beab-c56e3a16e1ff"],"befores":[],"afters":[],"start":1653211785709,"stop":1653211789431}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/b126c314-0c16-4744-b6b3-13cf6545a016-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"b126c314-0c16-4744-b6b3-13cf6545a016","name":"22. verify todo list created successfully when technology = Vanilla ES6","children":["823bf863-7569-4ece-96d0-8c1871ccfe48"],"befores":[],"afters":[],"start":1653211842766,"stop":1653211845785}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/b1b662d4-59ce-40a7-abdf-21ff30f3e762-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"b1b662d4-59ce-40a7-abdf-21ff30f3e762","name":"ToDoExtentReportTests","children":["c1386ace-2f18-452c-9e10-53bcff240444","8af48c79-82d0-4d36-b3b5-ac78ad4ec96d","5fa7f993-2c0b-4083-9a49-aa94ab35dcb6","748c3fb4-d165-4561-af40-83e456fb7c10","3261acbd-886d-460d-87b5-a95e2d8be5a8","8da0d171-69a6-4abe-b6e4-e9b1774e35b0","f6a7066d-f463-4ad3-ae73-c7ea68652b2b","b31e427f-a4a5-4fa9-8c63-9497bf1680be","87de5331-a64e-4c83-8ce5-ca147a19d9e0","732312e3-1003-4597-8870-216c769630c0","b4a4cf53-5cd6-4b77-8c5f-a935f5090833","b6a4b067-4458-4597-ae73-83b9b0efb933","960c2153-e9d8-4af4-8cb8-9f4917c8dad9","cf6f7d19-76e8-4ba0-ab89-3f34c1526deb","41942ae5-d925-41a6-beab-c56e3a16e1ff","823294f1-a514-495b-9157-468db0f7803f","26fce5ba-23e1-42ee-a31c-3a165f8fe182","ea64b592-6b71-4c22-945a-8f7593c12764","df43a624-e259-4ca2-92c5-2e88b68582be","99c8cf9b-2308-41be-a188-8dc06c9aef06","d912c07c-7911-4090-a1f8-6c1d46c3464b","823bf863-7569-4ece-96d0-8c1871ccfe48","ca9d0e99-acd0-4f62-802c-5dbb384758bb","8539c05d-2035-4ca8-b16c-4a7e688fd3a7"],"befores":[],"afters":[],"start":1653211731614,"stop":1653211849854}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/d095126e-13cc-4d2c-8f8a-243eaa672f8f-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"d095126e-13cc-4d2c-8f8a-243eaa672f8f","name":"24. verify todo list created successfully when technology = ","children":["26d893db-5751-499a-8e31-3b86f08102e6"],"befores":[],"afters":[],"start":1653212967158,"stop":1653212968916}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/d16f875f-5538-40c3-93d1-32bd12a129ef-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"d16f875f-5538-40c3-93d1-32bd12a129ef","name":"17. verify todo list created successfully when technology = Spine","children":["26fce5ba-23e1-42ee-a31c-3a165f8fe182"],"befores":[],"afters":[],"start":1653211826535,"stop":1653211829480}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/d78b8cb7-9ffa-428f-9c04-174515722462-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"d78b8cb7-9ffa-428f-9c04-174515722462","name":"5. verify todo list created successfully when technology = CanJS","children":["003a8272-15f3-455e-84fd-610a53eceb20"],"befores":[],"afters":[],"start":1653212869941,"stop":1653212873605}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/e8a7abb4-a7a2-470d-be8d-e25e86a7c867-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"e8a7abb4-a7a2-470d-be8d-e25e86a7c867","name":"2. verify todo list created successfully when technology = AngularJS","children":["551ecc3f-25c5-4ea1-95b4-60e47dc3e721"],"befores":[],"afters":[],"start":1653212857966,"stop":1653212862074}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/ec55883b-e754-4a43-8074-3d95a33d4b23-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"ec55883b-e754-4a43-8074-3d95a33d4b23","name":"16. verify todo list created successfully when technology = cujoJS","children":["5bd549f5-fae9-4dcb-80c1-ef81d6488f78"],"befores":[],"afters":[],"start":1653212909743,"stop":1653212947024}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/edd2dd29-5b76-4587-a353-69a8893f3a99-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"edd2dd29-5b76-4587-a353-69a8893f3a99","name":"19. verify todo list created successfully when technology = Mithril","children":["c0289780-127f-433d-8e16-aacce410697f"],"befores":[],"afters":[],"start":1653212953365,"stop":1653212956212}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/f0c182ae-a0eb-48eb-94c9-640e98ea0916-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"f0c182ae-a0eb-48eb-94c9-640e98ea0916","name":"verifyToDoListCreatedSuccessfully_withParams(String)","children":["bbf1f5fd-0074-40e7-af57-f3c2fccc08d8","551ecc3f-25c5-4ea1-95b4-60e47dc3e721","d0585480-e624-4850-9619-1ca83f21affd","c2f9c032-4303-49bc-a54c-657c35ef89cb","003a8272-15f3-455e-84fd-610a53eceb20","e6f5abe0-1d7c-49bb-861e-477bd6e0390d","592cc095-bf39-4b6c-943e-50baaa7ba69d","121f9f9c-8e67-4952-bff6-e3fb2fe6df23","72d53f59-1fc7-4354-979c-c8ebabf14806","33789db1-579d-4511-8aec-292abac5e6de","9a3f43a9-1687-48e8-b5ab-9776b5e69711","047226f9-a295-417e-8fa2-a12c6793ad04","e1276b51-82ff-425c-be7f-7086dfca8b10","ea513901-9e2d-42bb-b58b-e4fa72eeb7b8","d98fc60e-0549-43e6-b5bd-b1fc53485e26","5bd549f5-fae9-4dcb-80c1-ef81d6488f78","6631ae30-10d7-45a0-8021-f5eaab2294db","33ebbd48-65e1-4029-83db-938621d49733","c0289780-127f-433d-8e16-aacce410697f","fb1be74f-e6ca-4e3f-a3e6-842d47d865fc","e5001eee-38e0-4b02-adae-d3c1a58e8ba5","eeabb5a9-b89d-439d-9fdf-f091059545e1","532032b2-9385-41c2-9447-c9afd19519f2","26d893db-5751-499a-8e31-3b86f08102e6"],"befores":[],"afters":[],"start":1653212852465,"stop":1653212968919}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/f5455136-999d-4377-8293-e398ed2a1ef0-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"f5455136-999d-4377-8293-e398ed2a1ef0","name":"21. verify todo list created successfully when technology = Firebase + AngularJS","children":["d912c07c-7911-4090-a1f8-6c1d46c3464b"],"befores":[],"afters":[],"start":1653211839165,"stop":1653211842763}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/f80d8c0d-d3bc-4337-89f7-5460515e7610-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"f80d8c0d-d3bc-4337-89f7-5460515e7610","name":"7. verify todo list created successfully when technology = KnockoutJS","children":["f6a7066d-f463-4ad3-ae73-c7ea68652b2b"],"befores":[],"afters":[],"start":1653211757847,"stop":1653211761099}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/f9dff448-a6eb-479e-842a-6c4122d66099-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"f9dff448-a6eb-479e-842a-6c4122d66099","name":"13. verify todo list created successfully when technology = Closure","children":["e1276b51-82ff-425c-be7f-7086dfca8b10"],"befores":[],"afters":[],"start":1653212900045,"stop":1653212903210}
--------------------------------------------------------------------------------
/chapter11-test-reporting/allure-results/fedb8f81-c8cc-4c82-9486-fe6729d80083-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"fedb8f81-c8cc-4c82-9486-fe6729d80083","name":"4. verify todo list created successfully when technology = Vue.js","children":["c2f9c032-4303-49bc-a54c-657c35ef89cb"],"befores":[],"afters":[],"start":1653212866385,"stop":1653212869935}
--------------------------------------------------------------------------------
/chapter11-test-reporting/src/main/resources/junit-platform.properties:
--------------------------------------------------------------------------------
1 | junit.jupiter.testinstance.lifecycle.default = per_class
2 | junit.jupiter.execution.timeout.mode=enabled
3 | junit.jupiter.execution.timeout.default=60 s
4 | junit.jupiter.testclass.order.default = org.junit.jupiter.api.ClassOrderer$OrderAnnotation
5 |
6 | allure.link.mylink.pattern=https://example.org/mylink/{}
7 | allure.link.issue.pattern=https://example.org/issue/{}
8 | allure.link.tms.pattern=https://example.org/tms/{}
--------------------------------------------------------------------------------
/chapter11-test-reporting/src/main/resources/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | %d{HH:mm:ss.SSS} %-5level %logger{5} - %thread - %msg%n
9 |
10 |
11 |
12 |
13 |
14 |
15 | [%t] - %msg%n
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/chapter11-test-reporting/src/main/resources/reportportal.properties:
--------------------------------------------------------------------------------
1 | rp.endpoint = http://localhost:8080
2 | rp.uuid = 8ca3be4c-4f0f-4c35-8f50-34ef1d07e333
3 | rp.launch = default_JUNIT_AGENT
4 | rp.project = lambda-test-reports-examples
--------------------------------------------------------------------------------
/chapter11-test-reporting/src/test/java/WebTechnology.java:
--------------------------------------------------------------------------------
1 | public enum WebTechnology {
2 | BACKBONEJS("Backbone.js"),
3 | ANGULARJS("AngularJS"),
4 | REACT("React"),
5 | VUEJS("Vue.js"),
6 | CANJS("CanJS"),
7 | EMBERJS("Ember.js"),
8 | KNOCKOUTJS("KnockoutJS"),
9 | MARIONETTEJS("Marionette.js"),
10 | POLYMER("Polymer"),
11 | ANGULAR2("Angular 2.0"),
12 | DART("Dart"),
13 | ELM("Elm"),
14 | CLOSURE("Closure"),
15 | VANILLAJS("Vanilla JS"),
16 | JQUERY("jQuery"),
17 | CUJOJS("cujoJS"),
18 | SPINE("Spine"),
19 | DOJO("Dojo"),
20 | MITHRIL("Mithril"),
21 | KOTLIN_REACT("Kotlin + React"),
22 | FIREBASE_ANGULARJS("Firebase + AngularJS"),
23 | VANILLA_ES6("Vanilla ES6");
24 |
25 | private String technologyName;
26 |
27 |
28 | WebTechnology(String technologyName) {
29 | this.technologyName = technologyName;
30 | }
31 |
32 | public String getTechnologyName() {
33 | return technologyName;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/chapter11-test-reporting/target/classes/junit-platform.properties:
--------------------------------------------------------------------------------
1 | junit.jupiter.testinstance.lifecycle.default = per_class
2 | junit.jupiter.execution.timeout.mode=enabled
3 | junit.jupiter.execution.timeout.default=60 s
4 | junit.jupiter.testclass.order.default = org.junit.jupiter.api.ClassOrderer$OrderAnnotation
5 |
6 | allure.link.mylink.pattern=https://example.org/mylink/{}
7 | allure.link.issue.pattern=https://example.org/issue/{}
8 | allure.link.tms.pattern=https://example.org/tms/{}
--------------------------------------------------------------------------------
/chapter11-test-reporting/target/classes/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | %d{HH:mm:ss.SSS} %-5level %logger{5} - %thread - %msg%n
9 |
10 |
11 |
12 |
13 |
14 |
15 | [%t] - %msg%n
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/chapter11-test-reporting/target/classes/reportportal.properties:
--------------------------------------------------------------------------------
1 | rp.endpoint = http://localhost:8080
2 | rp.uuid = 8ca3be4c-4f0f-4c35-8f50-34ef1d07e333
3 | rp.launch = default_JUNIT_AGENT
4 | rp.project = lambda-test-reports-examples
--------------------------------------------------------------------------------
/chapter11-test-reporting/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AutomateThePlanet/LambdaTest-Selenium4-Java-Tutorial/d89c3a41f1e9f56aedbdbcd8b994a14e3aba8bc2/chapter11-test-reporting/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
--------------------------------------------------------------------------------
/chapter11-test-reporting/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AutomateThePlanet/LambdaTest-Selenium4-Java-Tutorial/d89c3a41f1e9f56aedbdbcd8b994a14e3aba8bc2/chapter11-test-reporting/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
--------------------------------------------------------------------------------
/chapter11-test-reporting/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst:
--------------------------------------------------------------------------------
1 | C:\SourceCode\LambdaTest-Selenium4-Java-Tutorial\chapter11-test-reporting\src\test\java\WebTechnology.java
2 | C:\SourceCode\LambdaTest-Selenium4-Java-Tutorial\chapter11-test-reporting\src\test\java\ToDoAllureTests.java
3 | C:\SourceCode\LambdaTest-Selenium4-Java-Tutorial\chapter11-test-reporting\src\test\java\ToDoExtentReportTests.java
4 |
--------------------------------------------------------------------------------
/chapter12-signup-forms/src/main/java/factories/UserFactory.java:
--------------------------------------------------------------------------------
1 | package factories;
2 |
3 | import com.github.javafaker.Faker;
4 | import models.User;
5 | import utilities.TimestampBuilder;
6 |
7 | public class UserFactory {
8 | private static final String DEFAULT_PASSWORD = "thesecret";
9 | private static final Faker faker;
10 |
11 | static {
12 | faker = new Faker();
13 | }
14 |
15 | public static User createDefault() {
16 | var user = new User();
17 | user.setEmail(TimestampBuilder.buildUniqueTextByPrefix(faker.internet().safeEmailAddress()));
18 | user.setFirstName(faker.name().firstName());
19 | user.setLastName(faker.name().lastName());
20 | user.setTelephone(faker.phoneNumber().phoneNumber());
21 | user.setPassword(DEFAULT_PASSWORD);
22 | user.setPasswordConfirm(DEFAULT_PASSWORD);
23 | user.setAgreePrivacyPolicy(true);
24 | user.setShouldSubscribe(false);
25 | return user;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/chapter12-signup-forms/src/main/java/pages/AccountSuccessPage.java:
--------------------------------------------------------------------------------
1 | package pages;
2 |
3 | import org.junit.jupiter.api.Assertions;
4 | import org.openqa.selenium.By;
5 | import org.openqa.selenium.WebDriver;
6 | import org.openqa.selenium.WebElement;
7 |
8 | public class AccountSuccessPage {
9 | private final WebDriver driver;
10 |
11 | public AccountSuccessPage(WebDriver driver) {
12 | this.driver = driver;
13 | }
14 |
15 | private WebElement mainHeading() {
16 | return driver.findElement(By.tagName("h1"));
17 | }
18 |
19 | public void assertAccountCreatedSuccessfully() {
20 | Assertions.assertEquals("Your Account Has Been Created!", mainHeading().getText().trim());
21 | }
22 | }
--------------------------------------------------------------------------------
/chapter12-signup-forms/src/main/java/utilities/TimestampBuilder.java:
--------------------------------------------------------------------------------
1 | package utilities;
2 |
3 | import java.text.SimpleDateFormat;
4 | import java.util.Date;
5 |
6 | public class TimestampBuilder {
7 | public static synchronized String getGuid() {
8 | return java.util.UUID.randomUUID().toString();
9 | }
10 |
11 | public static synchronized String buildUniqueTextByPrefix(String prefix) {
12 | return buildUniqueText(prefix, "", "");
13 | }
14 |
15 | public static synchronized String buildUniqueTextByPrefix(String prefix, String separator) {
16 | return buildUniqueText(prefix, "", separator);
17 | }
18 |
19 | public static synchronized String buildUniqueTextBySuffix(String suffix) {
20 | return buildUniqueText("", suffix, "");
21 | }
22 |
23 | public static synchronized String buildUniqueTextBySuffix(String suffix, String separator) {
24 | return buildUniqueText("", suffix, separator);
25 | }
26 |
27 | public static synchronized String buildUniqueText(String prefix, String suffix, String separator) {
28 | Date dNow = new Date();
29 | SimpleDateFormat ft = new SimpleDateFormat("yyyyMMddHHmmssSS");
30 | String datetime = ft.format(dNow);
31 | try {
32 | Thread.sleep(1);
33 | } catch (Exception e) {
34 | e.printStackTrace();
35 | }
36 |
37 | return prefix + separator + datetime + separator + suffix;
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/chapter13-email-testing/src/main/java/factories/UserFactory.java:
--------------------------------------------------------------------------------
1 | package factories;
2 |
3 | import com.github.javafaker.Faker;
4 | import models.User;
5 | import utilities.TimestampBuilder;
6 |
7 | public class UserFactory {
8 | private static final String DEFAULT_PASSWORD = "thesecret";
9 | private static final Faker faker;
10 |
11 | static {
12 | faker = new Faker();
13 | }
14 |
15 | public static User createDefault() {
16 | var user = new User();
17 | user.setEmail(TimestampBuilder.buildUniqueTextBySuffix("test@mailsurp.com"));
18 | user.setFirstName(faker.name().firstName());
19 | user.setLastName(faker.name().lastName());
20 | user.setUserName(faker.name().username());
21 | user.setTelephone(faker.phoneNumber().phoneNumber());
22 | user.setPassword(DEFAULT_PASSWORD);
23 | user.setPasswordConfirm(DEFAULT_PASSWORD);
24 | user.setAgreedPrivacyPolicy(true);
25 | user.setShouldSubscribe(false);
26 | return user;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/chapter13-email-testing/src/main/java/models/emails/EmailsResponse.java:
--------------------------------------------------------------------------------
1 | package models.emails;
2 |
3 | import java.util.List;
4 | import com.google.gson.annotations.SerializedName;
5 |
6 | public class EmailsResponse{
7 |
8 | @SerializedName("result")
9 | private String result;
10 |
11 | @SerializedName("emails")
12 | private List emails;
13 |
14 | @SerializedName("offset")
15 | private int offset;
16 |
17 | @SerializedName("count")
18 | private int count;
19 |
20 | @SerializedName("limit")
21 | private int limit;
22 |
23 | @SerializedName("message")
24 | private Object message;
25 |
26 | public String getResult(){
27 | return result;
28 | }
29 |
30 | public List getEmails(){
31 | return emails;
32 | }
33 |
34 | public int getOffset(){
35 | return offset;
36 | }
37 |
38 | public int getCount(){
39 | return count;
40 | }
41 |
42 | public int getLimit(){
43 | return limit;
44 | }
45 |
46 | public Object getMessage(){
47 | return message;
48 | }
49 | }
--------------------------------------------------------------------------------
/chapter13-email-testing/src/main/java/models/emails/FromParsedItem.java:
--------------------------------------------------------------------------------
1 | package models.emails;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | public class FromParsedItem{
6 |
7 | @SerializedName("address")
8 | private String address;
9 |
10 | @SerializedName("name")
11 | private String name;
12 |
13 | public String getAddress(){
14 | return address;
15 | }
16 |
17 | public String getName(){
18 | return name;
19 | }
20 | }
--------------------------------------------------------------------------------
/chapter13-email-testing/src/main/java/models/emails/ToParsedItem.java:
--------------------------------------------------------------------------------
1 | package models.emails;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | public class ToParsedItem{
6 |
7 | @SerializedName("address")
8 | private String address;
9 |
10 | @SerializedName("name")
11 | private String name;
12 |
13 | public String getAddress(){
14 | return address;
15 | }
16 |
17 | public String getName(){
18 | return name;
19 | }
20 | }
--------------------------------------------------------------------------------
/chapter13-email-testing/src/main/java/utilities/ResourcesReader.java:
--------------------------------------------------------------------------------
1 | package utilities;
2 |
3 | import lombok.SneakyThrows;
4 | import lombok.experimental.UtilityClass;
5 | import org.apache.commons.io.IOUtils;
6 |
7 | import java.io.InputStream;
8 | import java.nio.charset.StandardCharsets;
9 |
10 | @UtilityClass
11 | public class ResourcesReader {
12 | @SneakyThrows
13 | public static String getFileAsString(Class> moduleClass, String fileName) {
14 | InputStream input = moduleClass.getResourceAsStream("/" + fileName);
15 | if (input == null) {
16 | input = InputStream.nullInputStream();
17 | }
18 | return IOUtils.toString(input, StandardCharsets.UTF_8);
19 | }
20 | }
--------------------------------------------------------------------------------
/chapter13-email-testing/src/main/java/utilities/TimestampBuilder.java:
--------------------------------------------------------------------------------
1 | package utilities;
2 |
3 | import java.text.SimpleDateFormat;
4 | import java.util.Date;
5 |
6 | public class TimestampBuilder {
7 | public static synchronized String getGuid() {
8 | return java.util.UUID.randomUUID().toString();
9 | }
10 |
11 | public static synchronized String buildUniqueTextByPrefix(String prefix) {
12 | return buildUniqueText(prefix, "", "");
13 | }
14 |
15 | public static synchronized String buildUniqueTextByPrefix(String prefix, String separator) {
16 | return buildUniqueText(prefix, "", separator);
17 | }
18 |
19 | public static synchronized String buildUniqueTextBySuffix(String suffix) {
20 | return buildUniqueText("", suffix, "");
21 | }
22 |
23 | public static synchronized String buildUniqueTextBySuffix(String suffix, String separator) {
24 | return buildUniqueText("", suffix, separator);
25 | }
26 |
27 | public static synchronized String buildUniqueText(String prefix, String suffix, String separator) {
28 | Date dNow = new Date();
29 | SimpleDateFormat ft = new SimpleDateFormat("yyyyMMddHHmmssSS");
30 | String datetime = ft.format(dNow);
31 | try {
32 | Thread.sleep(1);
33 | } catch (Exception e) {
34 | e.printStackTrace();
35 | }
36 |
37 | return prefix + separator + datetime + separator + suffix;
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/chapter16-handling-waits/src/main/java/adapterpattern/Browser.java:
--------------------------------------------------------------------------------
1 | package adapterpattern;
2 |
3 | public enum Browser {
4 | CHROME,
5 | FIREFOX,
6 | EDGE,
7 | OPERA,
8 | SAFARI,
9 | INTERNET_EXPLORER
10 | }
11 |
--------------------------------------------------------------------------------
/chapter16-handling-waits/src/main/java/adapterpattern/Driver.java:
--------------------------------------------------------------------------------
1 | package adapterpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | import java.util.List;
6 |
7 | public abstract class Driver {
8 | public abstract void start(Browser browser);
9 | public abstract void quit();
10 | public abstract void goToUrl(String url);
11 | public abstract void waitForAjax();
12 | public abstract Element findElement(By locator);
13 | public abstract List findElements(By locator);
14 | }
--------------------------------------------------------------------------------
/chapter16-handling-waits/src/main/java/adapterpattern/Element.java:
--------------------------------------------------------------------------------
1 | package adapterpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | public abstract class Element {
6 | public abstract By getBy();
7 | public abstract String getText();
8 | public abstract Boolean isEnabled();
9 | public abstract Boolean isDisplayed();
10 | public abstract void typeText(String text) throws InterruptedException;
11 | public abstract void click();
12 | public abstract String getAttribute(String attributeName);
13 | }
14 |
--------------------------------------------------------------------------------
/chapter16-handling-waits/src/main/java/decoratorpattern/Browser.java:
--------------------------------------------------------------------------------
1 | package decoratorpattern;
2 |
3 | public enum Browser {
4 | CHROME,
5 | FIREFOX,
6 | EDGE,
7 | OPERA,
8 | SAFARI,
9 | INTERNET_EXPLORER
10 | }
11 |
--------------------------------------------------------------------------------
/chapter16-handling-waits/src/main/java/decoratorpattern/Driver.java:
--------------------------------------------------------------------------------
1 | package decoratorpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | import java.util.List;
6 |
7 | public abstract class Driver {
8 | public abstract void start(Browser browser);
9 | public abstract void quit();
10 | public abstract void goToUrl(String url);
11 | public abstract Element findElement(By locator);
12 | public abstract List findElements(By locator);
13 | }
14 |
--------------------------------------------------------------------------------
/chapter16-handling-waits/src/main/java/decoratorpattern/DriverDecorator.java:
--------------------------------------------------------------------------------
1 | package decoratorpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | import java.util.List;
6 |
7 | public class DriverDecorator extends Driver {
8 | protected final Driver driver;
9 |
10 | public DriverDecorator(Driver driver) {
11 | this.driver = driver;
12 | }
13 |
14 | @Override
15 | public void start(Browser browser) {
16 | driver.start(browser);
17 | }
18 |
19 | @Override
20 | public void quit() {
21 | driver.quit();
22 | }
23 |
24 | @Override
25 | public void goToUrl(String url) {
26 | driver.goToUrl(url);
27 | }
28 |
29 | @Override
30 | public Element findElement(By locator) {
31 | return driver.findElement(locator);
32 | }
33 |
34 | @Override
35 | public List findElements(By locator) {
36 | return driver.findElements(locator);
37 | }
38 | }
--------------------------------------------------------------------------------
/chapter16-handling-waits/src/main/java/decoratorpattern/Element.java:
--------------------------------------------------------------------------------
1 | package decoratorpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | public abstract class Element {
6 | public abstract By getBy();
7 | public abstract String getText();
8 | public abstract Boolean isEnabled();
9 | public abstract Boolean isDisplayed();
10 | public abstract void typeText(String text) throws InterruptedException;
11 | public abstract void click();
12 | public abstract String getAttribute(String attributeName);
13 | }
14 |
--------------------------------------------------------------------------------
/chapter16-handling-waits/src/main/java/decoratorpattern/ElementDecorator.java:
--------------------------------------------------------------------------------
1 | package decoratorpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | public class ElementDecorator extends Element {
6 | protected final Element element;
7 |
8 | protected ElementDecorator(Element element) {
9 | this.element = element;
10 | }
11 |
12 | @Override
13 | public By getBy() {
14 | return element.getBy();
15 | }
16 |
17 | @Override
18 | public String getText() {
19 | return element.getText();
20 | }
21 |
22 | @Override
23 | public Boolean isEnabled() {
24 | return element.isEnabled();
25 | }
26 |
27 | @Override
28 | public Boolean isDisplayed() {
29 | return element.isDisplayed();
30 | }
31 |
32 | @Override
33 | public void typeText(String text) throws InterruptedException {
34 | element.typeText(text);
35 | }
36 |
37 | @Override
38 | public void click() {
39 | element.click();
40 | }
41 |
42 | @Override
43 | public String getAttribute(String attributeName) {
44 | return element.getAttribute(attributeName);
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/chapter16-handling-waits/src/main/java/decoratorpattern/LogElement.java:
--------------------------------------------------------------------------------
1 | package decoratorpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | public class LogElement extends ElementDecorator {
6 |
7 | protected LogElement(Element element) {
8 | super(element);
9 | }
10 |
11 | @Override
12 | public By getBy() {
13 | return element.getBy();
14 | }
15 |
16 | @Override
17 | public String getText() {
18 | System.out.print(String.format("Element Text = %s", element.getText()));
19 | return element.getText();
20 | }
21 |
22 | @Override
23 | public Boolean isEnabled() {
24 | System.out.print(String.format("Element Enabled = %b", element.isEnabled()));
25 | return element.isEnabled();
26 | }
27 |
28 | @Override
29 | public Boolean isDisplayed() {
30 | System.out.print(String.format("Element Displayed = %b", element.isDisplayed()));
31 | return element.isDisplayed();
32 | }
33 |
34 | @Override
35 | public void typeText(String text) throws InterruptedException {
36 | System.out.print(String.format("Type Text = = %s", text));
37 | element.typeText(text);
38 | }
39 |
40 | @Override
41 | public void click() {
42 | System.out.print("Element Clicked");
43 | element.click();
44 | }
45 |
46 | @Override
47 | public String getAttribute(String attributeName) {
48 | System.out.print("Element Clicked");
49 | return element.getAttribute(attributeName);
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/chapter16-handling-waits/src/main/java/decoratorpattern/LoggingDriver.java:
--------------------------------------------------------------------------------
1 | package decoratorpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | import java.util.List;
6 |
7 | public class LoggingDriver extends DriverDecorator {
8 | public LoggingDriver(Driver driver) {
9 | super(driver);
10 | }
11 |
12 | @Override
13 | public void start(Browser browser) {
14 | System.out.print(String.format("start browser = %s", browser.name()));
15 | driver.start(browser);
16 | }
17 |
18 | @Override
19 | public void quit() {
20 | System.out.print("close browser");
21 | driver.quit();
22 | }
23 |
24 | @Override
25 | public void goToUrl(String url) {
26 | System.out.print(String.format("go to url = %s", url));
27 | driver.goToUrl(url);
28 | }
29 |
30 | @Override
31 | public Element findElement(By locator) {
32 | System.out.print("find element");
33 | return driver.findElement(locator);
34 | }
35 |
36 | @Override
37 | public List findElements(By locator) {
38 | System.out.print("find elements");
39 | return driver.findElements(locator);
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/chapter17-handling-exceptions/src/main/java/adapterpattern/Browser.java:
--------------------------------------------------------------------------------
1 | package adapterpattern;
2 |
3 | public enum Browser {
4 | CHROME,
5 | FIREFOX,
6 | EDGE,
7 | OPERA,
8 | SAFARI,
9 | INTERNET_EXPLORER
10 | }
11 |
--------------------------------------------------------------------------------
/chapter17-handling-exceptions/src/main/java/adapterpattern/Driver.java:
--------------------------------------------------------------------------------
1 | package adapterpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | import java.util.List;
6 |
7 | public abstract class Driver {
8 | public abstract void start(Browser browser);
9 | public abstract void quit();
10 | public abstract void goToUrl(String url);
11 | public abstract void waitForAjax();
12 | public abstract Element findElement(By locator);
13 | public abstract List findElements(By locator);
14 | }
--------------------------------------------------------------------------------
/chapter17-handling-exceptions/src/main/java/adapterpattern/Element.java:
--------------------------------------------------------------------------------
1 | package adapterpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | public abstract class Element {
6 | public abstract By getBy();
7 | public abstract String getText();
8 | public abstract Boolean isEnabled();
9 | public abstract Boolean isDisplayed();
10 | public abstract void typeText(String text) throws InterruptedException;
11 | public abstract void click();
12 | public abstract String getAttribute(String attributeName);
13 | }
14 |
--------------------------------------------------------------------------------
/chapter17-handling-exceptions/src/main/java/decoratorpattern/Browser.java:
--------------------------------------------------------------------------------
1 | package decoratorpattern;
2 |
3 | public enum Browser {
4 | CHROME,
5 | FIREFOX,
6 | EDGE,
7 | OPERA,
8 | SAFARI,
9 | INTERNET_EXPLORER
10 | }
11 |
--------------------------------------------------------------------------------
/chapter17-handling-exceptions/src/main/java/decoratorpattern/Driver.java:
--------------------------------------------------------------------------------
1 | package decoratorpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | import java.util.List;
6 |
7 | public abstract class Driver {
8 | public abstract void start(Browser browser);
9 | public abstract void quit();
10 | public abstract void goToUrl(String url);
11 | public abstract Element findElement(By locator);
12 | public abstract List findElements(By locator);
13 | }
14 |
--------------------------------------------------------------------------------
/chapter17-handling-exceptions/src/main/java/decoratorpattern/DriverDecorator.java:
--------------------------------------------------------------------------------
1 | package decoratorpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | import java.util.List;
6 |
7 | public class DriverDecorator extends Driver {
8 | protected final Driver driver;
9 |
10 | public DriverDecorator(Driver driver) {
11 | this.driver = driver;
12 | }
13 |
14 | @Override
15 | public void start(Browser browser) {
16 | driver.start(browser);
17 | }
18 |
19 | @Override
20 | public void quit() {
21 | driver.quit();
22 | }
23 |
24 | @Override
25 | public void goToUrl(String url) {
26 | driver.goToUrl(url);
27 | }
28 |
29 | @Override
30 | public Element findElement(By locator) {
31 | return driver.findElement(locator);
32 | }
33 |
34 | @Override
35 | public List findElements(By locator) {
36 | return driver.findElements(locator);
37 | }
38 | }
--------------------------------------------------------------------------------
/chapter17-handling-exceptions/src/main/java/decoratorpattern/Element.java:
--------------------------------------------------------------------------------
1 | package decoratorpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | public abstract class Element {
6 | public abstract By getBy();
7 | public abstract String getText();
8 | public abstract Boolean isEnabled();
9 | public abstract Boolean isDisplayed();
10 | public abstract void typeText(String text) throws InterruptedException;
11 | public abstract void click();
12 | public abstract String getAttribute(String attributeName);
13 | }
14 |
--------------------------------------------------------------------------------
/chapter17-handling-exceptions/src/main/java/decoratorpattern/ElementDecorator.java:
--------------------------------------------------------------------------------
1 | package decoratorpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | public class ElementDecorator extends Element {
6 | protected final Element element;
7 |
8 | protected ElementDecorator(Element element) {
9 | this.element = element;
10 | }
11 |
12 | @Override
13 | public By getBy() {
14 | return element.getBy();
15 | }
16 |
17 | @Override
18 | public String getText() {
19 | return element.getText();
20 | }
21 |
22 | @Override
23 | public Boolean isEnabled() {
24 | return element.isEnabled();
25 | }
26 |
27 | @Override
28 | public Boolean isDisplayed() {
29 | return element.isDisplayed();
30 | }
31 |
32 | @Override
33 | public void typeText(String text) throws InterruptedException {
34 | element.typeText(text);
35 | }
36 |
37 | @Override
38 | public void click() {
39 | element.click();
40 | }
41 |
42 | @Override
43 | public String getAttribute(String attributeName) {
44 | return element.getAttribute(attributeName);
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/chapter17-handling-exceptions/src/main/java/decoratorpattern/LogElement.java:
--------------------------------------------------------------------------------
1 | package decoratorpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | public class LogElement extends ElementDecorator {
6 |
7 | protected LogElement(Element element) {
8 | super(element);
9 | }
10 |
11 | @Override
12 | public By getBy() {
13 | return element.getBy();
14 | }
15 |
16 | @Override
17 | public String getText() {
18 | System.out.print(String.format("Element Text = %s", element.getText()));
19 | return element.getText();
20 | }
21 |
22 | @Override
23 | public Boolean isEnabled() {
24 | System.out.print(String.format("Element Enabled = %b", element.isEnabled()));
25 | return element.isEnabled();
26 | }
27 |
28 | @Override
29 | public Boolean isDisplayed() {
30 | System.out.print(String.format("Element Displayed = %b", element.isDisplayed()));
31 | return element.isDisplayed();
32 | }
33 |
34 | @Override
35 | public void typeText(String text) throws InterruptedException {
36 | System.out.print(String.format("Type Text = = %s", text));
37 | element.typeText(text);
38 | }
39 |
40 | @Override
41 | public void click() {
42 | System.out.print("Element Clicked");
43 | element.click();
44 | }
45 |
46 | @Override
47 | public String getAttribute(String attributeName) {
48 | System.out.print("Element Clicked");
49 | return element.getAttribute(attributeName);
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/chapter17-handling-exceptions/src/main/java/decoratorpattern/LoggingDriver.java:
--------------------------------------------------------------------------------
1 | package decoratorpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | import java.util.List;
6 |
7 | public class LoggingDriver extends DriverDecorator {
8 | public LoggingDriver(Driver driver) {
9 | super(driver);
10 | }
11 |
12 | @Override
13 | public void start(Browser browser) {
14 | System.out.print(String.format("start browser = %s", browser.name()));
15 | driver.start(browser);
16 | }
17 |
18 | @Override
19 | public void quit() {
20 | System.out.print("close browser");
21 | driver.quit();
22 | }
23 |
24 | @Override
25 | public void goToUrl(String url) {
26 | System.out.print(String.format("go to url = %s", url));
27 | driver.goToUrl(url);
28 | }
29 |
30 | @Override
31 | public Element findElement(By locator) {
32 | System.out.print("find element");
33 | return driver.findElement(locator);
34 | }
35 |
36 | @Override
37 | public List findElements(By locator) {
38 | System.out.print("find elements");
39 | return driver.findElements(locator);
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/adapterpattern/Browser.java:
--------------------------------------------------------------------------------
1 | package adapterpattern;
2 |
3 | public enum Browser {
4 | CHROME,
5 | FIREFOX,
6 | EDGE,
7 | OPERA,
8 | SAFARI,
9 | INTERNET_EXPLORER
10 | }
11 |
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/adapterpattern/Driver.java:
--------------------------------------------------------------------------------
1 | package adapterpattern;
2 |
3 | import org.openqa.selenium.By;
4 | import org.openqa.selenium.support.events.WebDriverListener;
5 |
6 | import java.util.List;
7 |
8 | public abstract class Driver {
9 | public abstract void start(Browser browser);
10 | public abstract void quit();
11 | public abstract void goToUrl(String url);
12 | public abstract void waitForAjax();
13 | public abstract List getWebDriverListener();
14 | public abstract Element findElement(By locator);
15 | public abstract List findElements(By locator);
16 | }
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/adapterpattern/Element.java:
--------------------------------------------------------------------------------
1 | package adapterpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | public abstract class Element {
6 | public abstract By getBy();
7 | public abstract String getText();
8 | public abstract Boolean isEnabled();
9 | public abstract Boolean isDisplayed();
10 | public abstract void typeText(String text) throws InterruptedException;
11 | public abstract void click();
12 | public abstract String getAttribute(String attributeName);
13 | }
14 |
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/decoratorpattern/Browser.java:
--------------------------------------------------------------------------------
1 | package decoratorpattern;
2 |
3 | public enum Browser {
4 | CHROME,
5 | FIREFOX,
6 | EDGE,
7 | OPERA,
8 | SAFARI,
9 | INTERNET_EXPLORER
10 | }
11 |
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/decoratorpattern/Driver.java:
--------------------------------------------------------------------------------
1 | package decoratorpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | import java.util.List;
6 |
7 | public abstract class Driver {
8 | public abstract void start(Browser browser);
9 | public abstract void quit();
10 | public abstract void goToUrl(String url);
11 | public abstract Element findElement(By locator);
12 | public abstract List findElements(By locator);
13 | }
14 |
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/decoratorpattern/DriverDecorator.java:
--------------------------------------------------------------------------------
1 | package decoratorpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | import java.util.List;
6 |
7 | public class DriverDecorator extends Driver {
8 | protected final Driver driver;
9 |
10 | public DriverDecorator(Driver driver) {
11 | this.driver = driver;
12 | }
13 |
14 | @Override
15 | public void start(Browser browser) {
16 | driver.start(browser);
17 | }
18 |
19 | @Override
20 | public void quit() {
21 | driver.quit();
22 | }
23 |
24 | @Override
25 | public void goToUrl(String url) {
26 | driver.goToUrl(url);
27 | }
28 |
29 | @Override
30 | public Element findElement(By locator) {
31 | return driver.findElement(locator);
32 | }
33 |
34 | @Override
35 | public List findElements(By locator) {
36 | return driver.findElements(locator);
37 | }
38 | }
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/decoratorpattern/Element.java:
--------------------------------------------------------------------------------
1 | package decoratorpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | public abstract class Element {
6 | public abstract By getBy();
7 | public abstract String getText();
8 | public abstract Boolean isEnabled();
9 | public abstract Boolean isDisplayed();
10 | public abstract void typeText(String text) throws InterruptedException;
11 | public abstract void click();
12 | public abstract String getAttribute(String attributeName);
13 | }
14 |
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/decoratorpattern/ElementDecorator.java:
--------------------------------------------------------------------------------
1 | package decoratorpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | public class ElementDecorator extends Element {
6 | protected final Element element;
7 |
8 | protected ElementDecorator(Element element) {
9 | this.element = element;
10 | }
11 |
12 | @Override
13 | public By getBy() {
14 | return element.getBy();
15 | }
16 |
17 | @Override
18 | public String getText() {
19 | return element.getText();
20 | }
21 |
22 | @Override
23 | public Boolean isEnabled() {
24 | return element.isEnabled();
25 | }
26 |
27 | @Override
28 | public Boolean isDisplayed() {
29 | return element.isDisplayed();
30 | }
31 |
32 | @Override
33 | public void typeText(String text) throws InterruptedException {
34 | element.typeText(text);
35 | }
36 |
37 | @Override
38 | public void click() {
39 | element.click();
40 | }
41 |
42 | @Override
43 | public String getAttribute(String attributeName) {
44 | return element.getAttribute(attributeName);
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/decoratorpattern/LogElement.java:
--------------------------------------------------------------------------------
1 | package decoratorpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | public class LogElement extends ElementDecorator {
6 |
7 | protected LogElement(Element element) {
8 | super(element);
9 | }
10 |
11 | @Override
12 | public By getBy() {
13 | return element.getBy();
14 | }
15 |
16 | @Override
17 | public String getText() {
18 | System.out.print(String.format("Element Text = %s", element.getText()));
19 | return element.getText();
20 | }
21 |
22 | @Override
23 | public Boolean isEnabled() {
24 | System.out.print(String.format("Element Enabled = %b", element.isEnabled()));
25 | return element.isEnabled();
26 | }
27 |
28 | @Override
29 | public Boolean isDisplayed() {
30 | System.out.print(String.format("Element Displayed = %b", element.isDisplayed()));
31 | return element.isDisplayed();
32 | }
33 |
34 | @Override
35 | public void typeText(String text) throws InterruptedException {
36 | System.out.print(String.format("Type Text = = %s", text));
37 | element.typeText(text);
38 | }
39 |
40 | @Override
41 | public void click() {
42 | System.out.print("Element Clicked");
43 | element.click();
44 | }
45 |
46 | @Override
47 | public String getAttribute(String attributeName) {
48 | System.out.print("Element Clicked");
49 | return element.getAttribute(attributeName);
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/decoratorpattern/LoggingDriver.java:
--------------------------------------------------------------------------------
1 | package decoratorpattern;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | import java.util.List;
6 |
7 | public class LoggingDriver extends DriverDecorator {
8 | public LoggingDriver(Driver driver) {
9 | super(driver);
10 | }
11 |
12 | @Override
13 | public void start(Browser browser) {
14 | System.out.print(String.format("start browser = %s", browser.name()));
15 | driver.start(browser);
16 | }
17 |
18 | @Override
19 | public void quit() {
20 | System.out.print("close browser");
21 | driver.quit();
22 | }
23 |
24 | @Override
25 | public void goToUrl(String url) {
26 | System.out.print(String.format("go to url = %s", url));
27 | driver.goToUrl(url);
28 | }
29 |
30 | @Override
31 | public Element findElement(By locator) {
32 | System.out.print("find element");
33 | return driver.findElement(locator);
34 | }
35 |
36 | @Override
37 | public List findElements(By locator) {
38 | System.out.print("find elements");
39 | return driver.findElements(locator);
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/listeners/EventListener.java:
--------------------------------------------------------------------------------
1 | package listeners;
2 |
3 | import java.util.HashSet;
4 | import java.util.Set;
5 | import java.util.function.Consumer;
6 |
7 | public class EventListener {
8 | private final Set> listeners = new HashSet<>();
9 |
10 | public void addListener(Consumer listener) {
11 | listeners.add(listener);
12 | }
13 |
14 | public void broadcast(TArgs args) {
15 | if (listeners.size() > 0) {
16 | listeners.forEach(x -> x.accept(args));
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/listeners/ExceptionAnalysisWebDriverListener.java:
--------------------------------------------------------------------------------
1 | package listeners;
2 |
3 | import com.google.common.base.Throwables;
4 | import org.openqa.selenium.By;
5 | import org.openqa.selenium.JavascriptExecutor;
6 | import org.openqa.selenium.WebDriver;
7 | import org.openqa.selenium.WebElement;
8 | import org.openqa.selenium.support.events.WebDriverListener;
9 |
10 | import java.io.PrintWriter;
11 | import java.io.StringWriter;
12 | import java.util.ArrayList;
13 |
14 | public class ExceptionAnalysisWebDriverListener implements WebDriverListener {
15 | public void onException(Throwable e, WebDriver driver) {
16 | ArrayList exceptionCapture = new ArrayList<>();
17 | exceptionCapture.add(e.getMessage());
18 | String stackTraceText = Throwables.getStackTraceAsString(e);
19 | exceptionCapture.add(stackTraceText);
20 |
21 | ((JavascriptExecutor) driver).executeScript("lambda-exceptions", exceptionCapture);
22 |
23 | ((JavascriptExecutor) driver).executeScript("lambda-status=failed");
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/listeners/HighlightElementWebDriverListener.java:
--------------------------------------------------------------------------------
1 | package listeners;
2 |
3 | import org.openqa.selenium.By;
4 | import org.openqa.selenium.JavascriptExecutor;
5 | import org.openqa.selenium.WebDriver;
6 | import org.openqa.selenium.WebElement;
7 | import org.openqa.selenium.support.events.WebDriverListener;
8 |
9 | public class HighlightElementWebDriverListener implements WebDriverListener {
10 | public void afterFindBy(By arg0, WebElement arg1, WebDriver arg2) {
11 | highlightElement(arg2, arg1);
12 | }
13 |
14 | private void highlightElement(WebDriver driver, WebElement element) {
15 | ((JavascriptExecutor)driver).executeScript("highlight(arguments[0])", element);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/listeners/Log.java:
--------------------------------------------------------------------------------
1 | package listeners;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 | public class Log {
6 | public final static EventListener LOGGED_ENTRY = new EventListener<>();
7 | public final static EventListener LOGGED_INFO = new EventListener<>();
8 | public final static EventListener LOGGED_ERROR = new EventListener<>();
9 |
10 | public static void info(@NotNull String format, Object... args) {
11 | String info = String.format(format, args);
12 | LOGGED_ENTRY.broadcast(new LoggerActionEventArgs(info));
13 | LOGGED_INFO.broadcast(new LoggerActionEventArgs(info));
14 | System.out.println(info);
15 | }
16 |
17 | public static void error(@NotNull String format, Object... args) {
18 | String error = String.format(format, args);
19 | LOGGED_ENTRY.broadcast(new LoggerActionEventArgs(error));
20 | LOGGED_ERROR.broadcast(new LoggerActionEventArgs(error));
21 | System.err.println(error);
22 | }
23 | }
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/listeners/LoggerActionEventArgs.java:
--------------------------------------------------------------------------------
1 | package listeners;
2 |
3 | import lombok.Getter;
4 |
5 | public class LoggerActionEventArgs {
6 | @Getter private final String entry;
7 |
8 | public LoggerActionEventArgs(String entry) {
9 | this.entry = entry;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/listeners/NotificationWebDriverListener.java:
--------------------------------------------------------------------------------
1 | package listeners;
2 |
3 | import org.openqa.selenium.By;
4 | import org.openqa.selenium.JavascriptExecutor;
5 | import org.openqa.selenium.WebDriver;
6 | import org.openqa.selenium.WebElement;
7 | import org.openqa.selenium.support.events.WebDriverListener;
8 |
9 | public class NotificationWebDriverListener implements WebDriverListener {
10 | public void afterClickOn(WebElement arg0, WebDriver arg1) throws InterruptedException {
11 | growlMessage(arg1, "inside method afterClickOn on " + arg0.toString());
12 | }
13 |
14 | public void afterFindBy(By arg0, WebElement arg1, WebDriver arg2) throws InterruptedException {
15 | growlMessage(arg2, "Find happened on " + arg1.toString() + " Using method " + arg0.toString());
16 | }
17 |
18 | public void afterNavigateTo(String arg0, WebDriver arg1) throws InterruptedException {
19 | growlMessage(arg1, "Inside the afterNavigateTo to " + arg0);
20 | }
21 |
22 | public void onException(Throwable arg0, WebDriver arg1) throws InterruptedException {
23 | growlMessage(arg1, "Exception occurred at " + arg0.getMessage());
24 | }
25 |
26 | private void growlMessage(WebDriver driver, String message) throws InterruptedException {
27 | // Thread.sleep(500);
28 | ((JavascriptExecutor)driver).executeScript(String.format("$.jGrowl('%s', { header: 'Important' });", message));
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/listeners/exceptions/ErrorPageExceptionHandler.java:
--------------------------------------------------------------------------------
1 | package listeners.exceptions;
2 |
3 | public class ErrorPageExceptionHandler extends HtmlSourceExceptionHandler {
4 | public ErrorPageExceptionHandler() {
5 | super("internal server error");
6 | }
7 |
8 | @Override
9 | public String getDetailedIssueExplanation() {
10 | return "page failed via internal server error\nPage Source:\n" + getPageSource();
11 | }
12 | }
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/listeners/exceptions/ExceptionAnalysationHandler.java:
--------------------------------------------------------------------------------
1 | package listeners.exceptions;
2 |
3 | import org.openqa.selenium.WebDriver;
4 |
5 | public interface ExceptionAnalysationHandler {
6 | String getDetailedIssueExplanation();
7 | Boolean isApplicable(WebDriver driver, Exception ex, Object... context);
8 | }
9 |
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/listeners/exceptions/ExceptionAnalyser.java:
--------------------------------------------------------------------------------
1 | package listeners.exceptions;
2 |
3 | import org.openqa.selenium.WebDriver;
4 |
5 | import java.util.ArrayList;
6 | import java.util.List;
7 |
8 | public class ExceptionAnalyser {
9 | private static final List exceptionAnalysationHandlers = new ArrayList<>();
10 |
11 | public static void removeFirstExceptionAnalysationHandler() {
12 | if (exceptionAnalysationHandlers.stream().count() > 0)
13 | {
14 | exceptionAnalysationHandlers.remove(0);
15 | }
16 | }
17 |
18 | public static void analyse(WebDriver driver, Exception ex, Object... context) throws AnalyzedTestException {
19 | for (ExceptionAnalysationHandler exceptionHandler : exceptionAnalysationHandlers) {
20 | if (exceptionHandler.isApplicable(driver, ex, context)) {
21 | if (driver != null)
22 | {
23 | String url = driver.getCurrentUrl();
24 | throw new AnalyzedTestException(exceptionHandler.getDetailedIssueExplanation(), url, ex);
25 | }
26 | else
27 | {
28 | throw new AnalyzedTestException(exceptionHandler.getDetailedIssueExplanation(), ex);
29 | }
30 | }
31 | }
32 | }
33 |
34 | public static void addExceptionAnalysationHandler(ExceptionAnalysationHandler exceptionAnalysationHandler) {
35 | exceptionAnalysationHandlers.add(0, exceptionAnalysationHandler);
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/listeners/exceptions/HtmlSourceExceptionHandler.java:
--------------------------------------------------------------------------------
1 | package listeners.exceptions;
2 |
3 | import org.openqa.selenium.WebDriver;
4 |
5 | public abstract class HtmlSourceExceptionHandler implements ExceptionAnalysationHandler {
6 | private String textToSearchInSource;
7 | private String pageSource;
8 |
9 | public String getTextToSearchInSource() {
10 | return textToSearchInSource;
11 | }
12 |
13 | public String getPageSource() {
14 | return pageSource;
15 | }
16 |
17 | public HtmlSourceExceptionHandler(String textToSearchInSource) {
18 | this.textToSearchInSource = textToSearchInSource;
19 | }
20 |
21 | @Override
22 | public Boolean isApplicable(WebDriver driver, Exception ex, Object... context) {
23 | pageSource = driver.getPageSource();
24 | return driver.getPageSource().contains(textToSearchInSource);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/listeners/exceptions/LoginPageUrlExceptionHandler.java:
--------------------------------------------------------------------------------
1 | package listeners.exceptions;
2 |
3 | public class LoginPageUrlExceptionHandler extends UrlExceptionHandler {
4 |
5 | public LoginPageUrlExceptionHandler() {
6 | super("login");
7 | }
8 |
9 | @Override
10 | public String getDetailedIssueExplanation() {
11 | return "the test failed on the login web page so probably there is a problem with the authentication." + getActualUrl();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/listeners/exceptions/NotFoundPageExceptionHandler.java:
--------------------------------------------------------------------------------
1 | package listeners.exceptions;
2 |
3 | import org.openqa.selenium.WebDriver;
4 |
5 | public class NotFoundPageExceptionHandler extends HtmlSourceExceptionHandler {
6 |
7 | public NotFoundPageExceptionHandler() {
8 | super("404 not found");
9 | }
10 |
11 | @Override
12 | public String getDetailedIssueExplanation() {
13 | return "the web page was not found";
14 | }
15 | }
--------------------------------------------------------------------------------
/chapter18-event-listeners/src/main/java/listeners/exceptions/UrlExceptionHandler.java:
--------------------------------------------------------------------------------
1 | package listeners.exceptions;
2 |
3 | import org.openqa.selenium.WebDriver;
4 |
5 | public abstract class UrlExceptionHandler implements ExceptionAnalysationHandler {
6 | private String textToSearchInUrl;
7 | private String actualUrl;
8 |
9 | public UrlExceptionHandler(String textToSearchInUrl) {
10 | this.textToSearchInUrl = textToSearchInUrl;
11 | }
12 |
13 | public String getTextToSearchInUrl() {
14 | return textToSearchInUrl;
15 | }
16 |
17 | public String getActualUrl() {
18 | return actualUrl;
19 | }
20 |
21 | public abstract String getDetailedIssueExplanation();
22 |
23 | @Override
24 | public Boolean isApplicable(WebDriver driver, Exception ex, Object... context) {
25 | actualUrl = driver.getCurrentUrl();
26 | return driver.getCurrentUrl().contains(textToSearchInUrl);
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/chapter2-relativelocators-selenium4/relative-locators-test.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Document
9 |
16 |
17 |
18 |
19 |
20 | 1
21 |
22 | 2
23 | 3
24 | 4
25 |
26 | 5
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/chapter2-relativelocators-selenium4/src/test/java/ZipInfo.java:
--------------------------------------------------------------------------------
1 | public record ZipInfo(String cityName, String state, String zipCode, String longitude, String latitude){
2 | }
--------------------------------------------------------------------------------
/chapter6-responsive-testing/src/main/java/layout/ComparingOperators.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2021 Automate The Planet Ltd.
3 | * Author: Anton Angelov
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * You may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
7 | * Unless required by applicable law or agreed to in writing, software
8 | * distributed under the License is distributed on an "AS IS" BASIS,
9 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 | * See the License for the specific language governing permissions and
11 | * limitations under the License.
12 | */
13 |
14 | package layout;
15 |
16 | public enum ComparingOperators {
17 | EQUAL("="),
18 | GREATER_THAN(">"),
19 | GREATER_THAN_EQUAL(">="),
20 | LESS_THAN("<"),
21 | LESS_THAN_EQUAL("<=");
22 |
23 | private final String name;
24 |
25 | ComparingOperators(String s) {
26 | name = s;
27 | }
28 |
29 | public String toString() {
30 | return this.name;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/chapter6-responsive-testing/src/main/java/layout/LayoutComponent.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2021 Automate The Planet Ltd.
3 | * Author: Anton Angelov
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * You may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
7 | * Unless required by applicable law or agreed to in writing, software
8 | * distributed under the License is distributed on an "AS IS" BASIS,
9 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 | * See the License for the specific language governing permissions and
11 | * limitations under the License.
12 | */
13 |
14 | package layout;
15 |
16 | import org.openqa.selenium.Dimension;
17 | import org.openqa.selenium.Point;
18 |
19 | public interface LayoutComponent {
20 | String getComponentName();
21 | Point getLocation();
22 | Dimension getSize();
23 | }
24 |
--------------------------------------------------------------------------------
/chapter6-responsive-testing/src/main/java/layout/LayoutValidationEventArgs.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2021 Automate The Planet Ltd.
3 | * Author: Anton Angelov
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * You may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
7 | * Unless required by applicable law or agreed to in writing, software
8 | * distributed under the License is distributed on an "AS IS" BASIS,
9 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 | * See the License for the specific language governing permissions and
11 | * limitations under the License.
12 | */
13 |
14 | package layout;
15 |
16 | import lombok.Getter;
17 |
18 | public class LayoutValidationEventArgs {
19 | @Getter private final String message;
20 |
21 | public LayoutValidationEventArgs(String message) {
22 | this.message = message;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/chapter6-responsive-testing/src/main/java/layout/Screen.java:
--------------------------------------------------------------------------------
1 | package layout;
2 |
3 | import org.openqa.selenium.Dimension;
4 | import org.openqa.selenium.Point;
5 | import org.openqa.selenium.WebDriver;
6 |
7 | public class Screen implements LayoutComponent {
8 | private final Point location;
9 | private final Dimension size;
10 |
11 | Screen(WebDriver driver) {
12 | location = new Point(0, 0);
13 | size = driver.manage().window().getSize();
14 | }
15 |
16 | @Override
17 | public String getComponentName() {
18 | return "Screen";
19 | }
20 |
21 | @Override
22 | public Point getLocation() {
23 | return location;
24 | }
25 |
26 | @Override
27 | public Dimension getSize() {
28 | return size;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/chapter6-responsive-testing/src/main/java/layout/SpecialComponents.java:
--------------------------------------------------------------------------------
1 | package layout;
2 |
3 | import org.openqa.selenium.Dimension;
4 | import org.openqa.selenium.Point;
5 | import org.openqa.selenium.WebDriver;
6 |
7 | public class SpecialComponents {
8 | public static LayoutComponent getViewport(WebDriver driver) {
9 | return new Viewport(driver);
10 | }
11 |
12 | public static LayoutComponent getScreen(WebDriver driver) {
13 | return new Screen(driver);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/chapter6-responsive-testing/src/main/java/layout/Viewport.java:
--------------------------------------------------------------------------------
1 | package layout;
2 |
3 | import org.openqa.selenium.Dimension;
4 | import org.openqa.selenium.JavascriptExecutor;
5 | import org.openqa.selenium.Point;
6 | import org.openqa.selenium.WebDriver;
7 |
8 | public class Viewport implements LayoutComponent {
9 | private final Point location;
10 | private final Dimension size;
11 |
12 | Viewport(WebDriver driver) {
13 | var javaScriptService = (JavascriptExecutor)driver;
14 | location = new Point(0, 0);
15 | var viewportWidth = Integer.parseInt(javaScriptService.executeScript("return Math.max(document.documentElement.clientWidth, window.innerWidth || 0);").toString());
16 | var viewportHeight = Integer.parseInt(javaScriptService.executeScript("return Math.max(document.documentElement.clientHeight, window.innerHeight || 0);").toString());
17 | size = new Dimension(viewportWidth, viewportHeight);
18 | }
19 |
20 | @Override
21 | public String getComponentName() {
22 | return "Viewport";
23 | }
24 |
25 | @Override
26 | public Point getLocation() {
27 | return location;
28 | }
29 |
30 | @Override
31 | public Dimension getSize() {
32 | return size;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------