diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 000000000..13566b81b
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 000000000..f8bbcf127
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 000000000..aa00ffab7
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/git_toolbox_prj.xml b/.idea/git_toolbox_prj.xml
new file mode 100644
index 000000000..02b915b85
--- /dev/null
+++ b/.idea/git_toolbox_prj.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 000000000..712ab9d98
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_beust_jcommander_1_82.xml b/.idea/libraries/Maven__com_beust_jcommander_1_82.xml
new file mode 100644
index 000000000..7f57b10ce
--- /dev/null
+++ b/.idea/libraries/Maven__com_beust_jcommander_1_82.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_10_3.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_10_3.xml
new file mode 100644
index 000000000..aa94641a0
--- /dev/null
+++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_10_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_10_3.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_10_3.xml
new file mode 100644
index 000000000..e94ceb750
--- /dev/null
+++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_10_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_10_3.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_10_3.xml
new file mode 100644
index 000000000..656ffa496
--- /dev/null
+++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_10_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_docker_java_docker_java_3_2_13.xml b/.idea/libraries/Maven__com_github_docker_java_docker_java_3_2_13.xml
new file mode 100644
index 000000000..eb1fbe34c
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_docker_java_docker_java_3_2_13.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_docker_java_docker_java_api_3_2_13.xml b/.idea/libraries/Maven__com_github_docker_java_docker_java_api_3_2_13.xml
new file mode 100644
index 000000000..9cd35e4a2
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_docker_java_docker_java_api_3_2_13.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_docker_java_docker_java_core_3_2_13.xml b/.idea/libraries/Maven__com_github_docker_java_docker_java_core_3_2_13.xml
new file mode 100644
index 000000000..a7cfaa92f
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_docker_java_docker_java_core_3_2_13.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_docker_java_docker_java_transport_3_2_13.xml b/.idea/libraries/Maven__com_github_docker_java_docker_java_transport_3_2_13.xml
new file mode 100644
index 000000000..de7126287
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_docker_java_docker_java_transport_3_2_13.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_docker_java_docker_java_transport_httpclient5_3_2_13.xml b/.idea/libraries/Maven__com_github_docker_java_docker_java_transport_httpclient5_3_2_13.xml
new file mode 100644
index 000000000..9c667e0e1
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_docker_java_docker_java_transport_httpclient5_3_2_13.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_auto_auto_common_1_2.xml b/.idea/libraries/Maven__com_google_auto_auto_common_1_2.xml
new file mode 100644
index 000000000..dfdf457b9
--- /dev/null
+++ b/.idea/libraries/Maven__com_google_auto_auto_common_1_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_auto_service_auto_service_1_0_1.xml b/.idea/libraries/Maven__com_google_auto_service_auto_service_1_0_1.xml
new file mode 100644
index 000000000..52da39ca3
--- /dev/null
+++ b/.idea/libraries/Maven__com_google_auto_service_auto_service_1_0_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_auto_service_auto_service_annotations_1_0_1.xml b/.idea/libraries/Maven__com_google_auto_service_auto_service_annotations_1_0_1.xml
new file mode 100644
index 000000000..7713ed366
--- /dev/null
+++ b/.idea/libraries/Maven__com_google_auto_service_auto_service_annotations_1_0_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_code_findbugs_jsr305_3_0_2.xml b/.idea/libraries/Maven__com_google_code_findbugs_jsr305_3_0_2.xml
new file mode 100644
index 000000000..1c380d0bd
--- /dev/null
+++ b/.idea/libraries/Maven__com_google_code_findbugs_jsr305_3_0_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_code_gson_gson_2_10.xml b/.idea/libraries/Maven__com_google_code_gson_gson_2_10.xml
new file mode 100644
index 000000000..207a93002
--- /dev/null
+++ b/.idea/libraries/Maven__com_google_code_gson_gson_2_10.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_11_0.xml b/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_11_0.xml
new file mode 100644
index 000000000..4eb3ba5f5
--- /dev/null
+++ b/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_11_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_guava_failureaccess_1_0_1.xml b/.idea/libraries/Maven__com_google_guava_failureaccess_1_0_1.xml
new file mode 100644
index 000000000..36e948e2e
--- /dev/null
+++ b/.idea/libraries/Maven__com_google_guava_failureaccess_1_0_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_guava_guava_31_1_jre.xml b/.idea/libraries/Maven__com_google_guava_guava_31_1_jre.xml
new file mode 100644
index 000000000..5757b3dd9
--- /dev/null
+++ b/.idea/libraries/Maven__com_google_guava_guava_31_1_jre.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava.xml b/.idea/libraries/Maven__com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava.xml
new file mode 100644
index 000000000..4e15702e5
--- /dev/null
+++ b/.idea/libraries/Maven__com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_j2objc_j2objc_annotations_1_3.xml b/.idea/libraries/Maven__com_google_j2objc_j2objc_annotations_1_3.xml
new file mode 100644
index 000000000..bacaa4563
--- /dev/null
+++ b/.idea/libraries/Maven__com_google_j2objc_j2objc_annotations_1_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_sun_activation_jakarta_activation_1_2_2.xml b/.idea/libraries/Maven__com_sun_activation_jakarta_activation_1_2_2.xml
new file mode 100644
index 000000000..fea99f026
--- /dev/null
+++ b/.idea/libraries/Maven__com_sun_activation_jakarta_activation_1_2_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_typesafe_netty_netty_reactive_streams_2_0_4.xml b/.idea/libraries/Maven__com_typesafe_netty_netty_reactive_streams_2_0_4.xml
new file mode 100644
index 000000000..a8c6c1505
--- /dev/null
+++ b/.idea/libraries/Maven__com_typesafe_netty_netty_reactive_streams_2_0_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__commons_codec_commons_codec_1_15.xml b/.idea/libraries/Maven__commons_codec_commons_codec_1_15.xml
new file mode 100644
index 000000000..c88c2b719
--- /dev/null
+++ b/.idea/libraries/Maven__commons_codec_commons_codec_1_15.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__commons_io_commons_io_2_6.xml b/.idea/libraries/Maven__commons_io_commons_io_2_6.xml
new file mode 100644
index 000000000..d722698a8
--- /dev/null
+++ b/.idea/libraries/Maven__commons_io_commons_io_2_6.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__dev_failsafe_failsafe_3_3_1.xml b/.idea/libraries/Maven__dev_failsafe_failsafe_3_3_1.xml
new file mode 100644
index 000000000..027a970e9
--- /dev/null
+++ b/.idea/libraries/Maven__dev_failsafe_failsafe_3_3_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_github_bonigarcia_webdrivermanager_5_3_1.xml b/.idea/libraries/Maven__io_github_bonigarcia_webdrivermanager_5_3_1.xml
new file mode 100644
index 000000000..9e4509251
--- /dev/null
+++ b/.idea/libraries/Maven__io_github_bonigarcia_webdrivermanager_5_3_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_buffer_4_1_90_Final.xml b/.idea/libraries/Maven__io_netty_netty_buffer_4_1_90_Final.xml
new file mode 100644
index 000000000..3ee9dc447
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_buffer_4_1_90_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_codec_4_1_90_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_4_1_90_Final.xml
new file mode 100644
index 000000000..2389d4cfb
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_codec_4_1_90_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_90_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_90_Final.xml
new file mode 100644
index 000000000..3699859e3
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_90_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_codec_socks_4_1_60_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_socks_4_1_60_Final.xml
new file mode 100644
index 000000000..4bafc149a
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_codec_socks_4_1_60_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_common_4_1_90_Final.xml b/.idea/libraries/Maven__io_netty_netty_common_4_1_90_Final.xml
new file mode 100644
index 000000000..3f2a10b09
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_common_4_1_90_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_handler_4_1_90_Final.xml b/.idea/libraries/Maven__io_netty_netty_handler_4_1_90_Final.xml
new file mode 100644
index 000000000..bd95dab85
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_handler_4_1_90_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_handler_proxy_4_1_60_Final.xml b/.idea/libraries/Maven__io_netty_netty_handler_proxy_4_1_60_Final.xml
new file mode 100644
index 000000000..58771f105
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_handler_proxy_4_1_60_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_resolver_4_1_90_Final.xml b/.idea/libraries/Maven__io_netty_netty_resolver_4_1_90_Final.xml
new file mode 100644
index 000000000..a4fc17444
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_resolver_4_1_90_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_transport_4_1_90_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_4_1_90_Final.xml
new file mode 100644
index 000000000..2d11f74cd
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_transport_4_1_90_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_transport_classes_epoll_4_1_90_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_classes_epoll_4_1_90_Final.xml
new file mode 100644
index 000000000..4d6814068
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_transport_classes_epoll_4_1_90_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_transport_classes_kqueue_4_1_90_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_classes_kqueue_4_1_90_Final.xml
new file mode 100644
index 000000000..1513ae139
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_transport_classes_kqueue_4_1_90_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_4_1_90_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_4_1_90_Final.xml
new file mode 100644
index 000000000..1ab7e07d0
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_4_1_90_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_x86_64_4_1_60_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_x86_64_4_1_60_Final.xml
new file mode 100644
index 000000000..3aff18b90
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_x86_64_4_1_60_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_4_1_90_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_4_1_90_Final.xml
new file mode 100644
index 000000000..c337f40e8
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_4_1_90_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_x86_64_4_1_60_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_x86_64_4_1_60_Final.xml
new file mode 100644
index 000000000..34f04b3f3
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_x86_64_4_1_60_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_90_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_90_Final.xml
new file mode 100644
index 000000000..43eed0931
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_90_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_opentelemetry_opentelemetry_api_1_24_0.xml b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_api_1_24_0.xml
new file mode 100644
index 000000000..6af7414e5
--- /dev/null
+++ b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_api_1_24_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_opentelemetry_opentelemetry_api_events_1_24_0_alpha.xml b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_api_events_1_24_0_alpha.xml
new file mode 100644
index 000000000..a1255755a
--- /dev/null
+++ b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_api_events_1_24_0_alpha.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_opentelemetry_opentelemetry_api_logs_1_24_0_alpha.xml b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_api_logs_1_24_0_alpha.xml
new file mode 100644
index 000000000..a3e3367d7
--- /dev/null
+++ b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_api_logs_1_24_0_alpha.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_opentelemetry_opentelemetry_context_1_24_0.xml b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_context_1_24_0.xml
new file mode 100644
index 000000000..98a6b31cd
--- /dev/null
+++ b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_context_1_24_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_opentelemetry_opentelemetry_exporter_logging_1_24_0.xml b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_exporter_logging_1_24_0.xml
new file mode 100644
index 000000000..91c7bceab
--- /dev/null
+++ b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_exporter_logging_1_24_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_opentelemetry_opentelemetry_sdk_1_24_0.xml b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_sdk_1_24_0.xml
new file mode 100644
index 000000000..a624e6e5a
--- /dev/null
+++ b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_sdk_1_24_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_opentelemetry_opentelemetry_sdk_common_1_24_0.xml b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_sdk_common_1_24_0.xml
new file mode 100644
index 000000000..753310bdb
--- /dev/null
+++ b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_sdk_common_1_24_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_opentelemetry_opentelemetry_sdk_extension_autoconfigure_1_24_0_alpha.xml b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_sdk_extension_autoconfigure_1_24_0_alpha.xml
new file mode 100644
index 000000000..124a92768
--- /dev/null
+++ b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_sdk_extension_autoconfigure_1_24_0_alpha.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_opentelemetry_opentelemetry_sdk_extension_autoconfigure_spi_1_24_0.xml b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_sdk_extension_autoconfigure_spi_1_24_0.xml
new file mode 100644
index 000000000..db511b382
--- /dev/null
+++ b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_sdk_extension_autoconfigure_spi_1_24_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_opentelemetry_opentelemetry_sdk_logs_1_24_0_alpha.xml b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_sdk_logs_1_24_0_alpha.xml
new file mode 100644
index 000000000..00d18bdd5
--- /dev/null
+++ b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_sdk_logs_1_24_0_alpha.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_opentelemetry_opentelemetry_sdk_metrics_1_24_0.xml b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_sdk_metrics_1_24_0.xml
new file mode 100644
index 000000000..c4b869056
--- /dev/null
+++ b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_sdk_metrics_1_24_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_opentelemetry_opentelemetry_sdk_trace_1_24_0.xml b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_sdk_trace_1_24_0.xml
new file mode 100644
index 000000000..ecb9c3003
--- /dev/null
+++ b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_sdk_trace_1_24_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_opentelemetry_opentelemetry_semconv_1_24_0_alpha.xml b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_semconv_1_24_0_alpha.xml
new file mode 100644
index 000000000..e1a2bd24e
--- /dev/null
+++ b/.idea/libraries/Maven__io_opentelemetry_opentelemetry_semconv_1_24_0_alpha.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_ous_jtoml_2_0_0.xml b/.idea/libraries/Maven__io_ous_jtoml_2_0_0.xml
new file mode 100644
index 000000000..b7b0d4efe
--- /dev/null
+++ b/.idea/libraries/Maven__io_ous_jtoml_2_0_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_14_2.xml b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_14_2.xml
new file mode 100644
index 000000000..019992be6
--- /dev/null
+++ b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_14_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__net_java_dev_jna_jna_5_8_0.xml b/.idea/libraries/Maven__net_java_dev_jna_jna_5_8_0.xml
new file mode 100644
index 000000000..7e440f2eb
--- /dev/null
+++ b/.idea/libraries/Maven__net_java_dev_jna_jna_5_8_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_commons_commons_compress_1_21.xml b/.idea/libraries/Maven__org_apache_commons_commons_compress_1_21.xml
new file mode 100644
index 000000000..49cd123ce
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_commons_commons_compress_1_21.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_commons_commons_exec_1_3.xml b/.idea/libraries/Maven__org_apache_commons_commons_exec_1_3.xml
new file mode 100644
index 000000000..e064a8225
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_commons_commons_exec_1_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_12_0.xml b/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_12_0.xml
new file mode 100644
index 000000000..28b868250
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_12_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_httpcomponents_client5_httpclient5_5_1_3.xml b/.idea/libraries/Maven__org_apache_httpcomponents_client5_httpclient5_5_1_3.xml
new file mode 100644
index 000000000..9edc0bc6c
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_httpcomponents_client5_httpclient5_5_1_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_httpcomponents_core5_httpcore5_5_1_3.xml b/.idea/libraries/Maven__org_apache_httpcomponents_core5_httpcore5_5_1_3.xml
new file mode 100644
index 000000000..6b9e91c59
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_httpcomponents_core5_httpcore5_5_1_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_httpcomponents_core5_httpcore5_h2_5_1_3.xml b/.idea/libraries/Maven__org_apache_httpcomponents_core5_httpcore5_h2_5_1_3.xml
new file mode 100644
index 000000000..0503c83ef
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_httpcomponents_core5_httpcore5_h2_5_1_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml b/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml
new file mode 100644
index 000000000..6ac1c42c6
--- /dev/null
+++ b/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_asynchttpclient_async_http_client_2_12_3.xml b/.idea/libraries/Maven__org_asynchttpclient_async_http_client_2_12_3.xml
new file mode 100644
index 000000000..35e18c018
--- /dev/null
+++ b/.idea/libraries/Maven__org_asynchttpclient_async_http_client_2_12_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_asynchttpclient_async_http_client_netty_utils_2_12_3.xml b/.idea/libraries/Maven__org_asynchttpclient_async_http_client_netty_utils_2_12_3.xml
new file mode 100644
index 000000000..3f83c57d6
--- /dev/null
+++ b/.idea/libraries/Maven__org_asynchttpclient_async_http_client_netty_utils_2_12_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_bouncycastle_bcpkix_jdk15on_1_64.xml b/.idea/libraries/Maven__org_bouncycastle_bcpkix_jdk15on_1_64.xml
new file mode 100644
index 000000000..56cfc40f4
--- /dev/null
+++ b/.idea/libraries/Maven__org_bouncycastle_bcpkix_jdk15on_1_64.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_64.xml b/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_64.xml
new file mode 100644
index 000000000..861cb2825
--- /dev/null
+++ b/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_64.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_brotli_dec_0_1_2.xml b/.idea/libraries/Maven__org_brotli_dec_0_1_2.xml
new file mode 100644
index 000000000..2aade8642
--- /dev/null
+++ b/.idea/libraries/Maven__org_brotli_dec_0_1_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_checkerframework_checker_qual_3_12_0.xml b/.idea/libraries/Maven__org_checkerframework_checker_qual_3_12_0.xml
new file mode 100644
index 000000000..1b2a35b1e
--- /dev/null
+++ b/.idea/libraries/Maven__org_checkerframework_checker_qual_3_12_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_9_0.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_9_0.xml
new file mode 100644
index 000000000..07e0c344b
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_9_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_9_0.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_9_0.xml
new file mode 100644
index 000000000..0796c403b
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_9_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_9_0.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_9_0.xml
new file mode 100644
index 000000000..0bca97c2e
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_9_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_9_0.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_9_0.xml
new file mode 100644
index 000000000..8c49f4756
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_9_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_9_0.xml b/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_9_0.xml
new file mode 100644
index 000000000..86cd9a1c7
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_9_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_9_0.xml b/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_9_0.xml
new file mode 100644
index 000000000..f0ef25d96
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_9_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml b/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml
new file mode 100644
index 000000000..fbc1b1635
--- /dev/null
+++ b/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_3.xml b/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_3.xml
new file mode 100644
index 000000000..f17253bf8
--- /dev/null
+++ b/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_api_4_8_3.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_api_4_8_3.xml
new file mode 100644
index 000000000..b25e47b97
--- /dev/null
+++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_api_4_8_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_chrome_driver_4_8_3.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_chrome_driver_4_8_3.xml
new file mode 100644
index 000000000..a3270eb4f
--- /dev/null
+++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_chrome_driver_4_8_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_chromium_driver_4_8_3.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_chromium_driver_4_8_3.xml
new file mode 100644
index 000000000..887c9fa4e
--- /dev/null
+++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_chromium_driver_4_8_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_devtools_v109_4_8_3.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_devtools_v109_4_8_3.xml
new file mode 100644
index 000000000..c42ac65a2
--- /dev/null
+++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_devtools_v109_4_8_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_devtools_v110_4_8_3.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_devtools_v110_4_8_3.xml
new file mode 100644
index 000000000..5934ae08f
--- /dev/null
+++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_devtools_v110_4_8_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_devtools_v111_4_8_3.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_devtools_v111_4_8_3.xml
new file mode 100644
index 000000000..3edfd9d18
--- /dev/null
+++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_devtools_v111_4_8_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_devtools_v85_4_8_3.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_devtools_v85_4_8_3.xml
new file mode 100644
index 000000000..433dcfee4
--- /dev/null
+++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_devtools_v85_4_8_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_edge_driver_4_8_3.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_edge_driver_4_8_3.xml
new file mode 100644
index 000000000..9323e074a
--- /dev/null
+++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_edge_driver_4_8_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_firefox_driver_4_8_3.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_firefox_driver_4_8_3.xml
new file mode 100644
index 000000000..c0c4d24f9
--- /dev/null
+++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_firefox_driver_4_8_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_http_4_8_3.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_http_4_8_3.xml
new file mode 100644
index 000000000..2c3b782d8
--- /dev/null
+++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_http_4_8_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_ie_driver_4_8_3.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_ie_driver_4_8_3.xml
new file mode 100644
index 000000000..ee9d5cac7
--- /dev/null
+++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_ie_driver_4_8_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_java_4_8_3.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_java_4_8_3.xml
new file mode 100644
index 000000000..f2ecc4640
--- /dev/null
+++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_java_4_8_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_json_4_8_3.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_json_4_8_3.xml
new file mode 100644
index 000000000..07cb80573
--- /dev/null
+++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_json_4_8_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_manager_4_8_3.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_manager_4_8_3.xml
new file mode 100644
index 000000000..6d237205d
--- /dev/null
+++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_manager_4_8_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_remote_driver_4_8_3.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_remote_driver_4_8_3.xml
new file mode 100644
index 000000000..a9c177f18
--- /dev/null
+++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_remote_driver_4_8_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_safari_driver_4_8_3.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_safari_driver_4_8_3.xml
new file mode 100644
index 000000000..147dc5c0b
--- /dev/null
+++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_safari_driver_4_8_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_support_4_8_3.xml b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_support_4_8_3.xml
new file mode 100644
index 000000000..96f0d4d33
--- /dev/null
+++ b/.idea/libraries/Maven__org_seleniumhq_selenium_selenium_support_4_8_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_30.xml b/.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_30.xml
new file mode 100644
index 000000000..f92b9599e
--- /dev/null
+++ b/.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_30.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_slf4j_slf4j_api_2_0_3.xml b/.idea/libraries/Maven__org_slf4j_slf4j_api_2_0_3.xml
new file mode 100644
index 000000000..2a5d8ca94
--- /dev/null
+++ b/.idea/libraries/Maven__org_slf4j_slf4j_api_2_0_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 000000000..2e289ef7b
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 000000000..366a77583
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/take-home-webdriver-test.iml b/.idea/take-home-webdriver-test.iml
new file mode 100644
index 000000000..24b3684df
--- /dev/null
+++ b/.idea/take-home-webdriver-test.iml
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 000000000..35eb1ddfb
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 000000000..5782da3c6
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,44 @@
+
+
+ 4.0.0
+
+ cydeo
+ selenium-project
+ 1.0-SNAPSHOT
+
+
+ 11
+ 11
+ UTF-8
+
+
+
+
+
+ org.seleniumhq.selenium
+ selenium-java
+ 4.8.3
+
+
+
+ io.github.bonigarcia
+ webdrivermanager
+ 5.3.1
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.9.0
+ test
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/test/java/task/pages/CheckBoxesPage.java b/src/test/java/task/pages/CheckBoxesPage.java
new file mode 100644
index 000000000..188488526
--- /dev/null
+++ b/src/test/java/task/pages/CheckBoxesPage.java
@@ -0,0 +1,47 @@
+package task.pages;
+
+import org.checkerframework.checker.units.qual.C;
+import org.junit.jupiter.api.Test;
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.devtools.v85.page.Page;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+import task.tests.CheckBoxes;
+import task.utilities.Driver;
+
+import java.util.List;
+
+public class CheckBoxesPage {
+
+
+
+ @FindBy(css = "input[type='checkbox']:nth-of-type(1)")
+ public WebElement checkBox1;
+
+ @FindBy(css = "input[type='checkbox']:nth-of-type(2)")
+ public WebElement checkBox2;
+
+
+ public CheckBoxesPage(){
+ PageFactory.initElements(Driver.getDriver(), this);
+ }
+
+
+
+ public void clickCheckBox1() {
+ checkBox1.click();
+ }
+
+ public void clickCheckBox2() {
+ checkBox2.click();
+ }
+
+ public boolean isCheckBox1Selected() {
+ return checkBox1.isSelected();
+ }
+
+ public boolean isCheckBox2Selected() {
+ return checkBox2.isSelected();
+ }
+}
diff --git a/src/test/java/task/pages/ContextMenuPage.java b/src/test/java/task/pages/ContextMenuPage.java
new file mode 100644
index 000000000..2a8e3db0a
--- /dev/null
+++ b/src/test/java/task/pages/ContextMenuPage.java
@@ -0,0 +1,18 @@
+package task.pages;
+
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+import task.utilities.Driver;
+
+public class ContextMenuPage {
+
+
+ public ContextMenuPage(){
+ PageFactory.initElements(Driver.getDriver(), this);
+ }
+
+
+ @FindBy(id = "hot-spot")
+ public WebElement contextMenuIcon;
+}
diff --git a/src/test/java/task/pages/DragAndDropPage.java b/src/test/java/task/pages/DragAndDropPage.java
new file mode 100644
index 000000000..667314150
--- /dev/null
+++ b/src/test/java/task/pages/DragAndDropPage.java
@@ -0,0 +1,21 @@
+package task.pages;
+
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+import task.utilities.Driver;
+
+public class DragAndDropPage {
+
+ public DragAndDropPage(){
+ PageFactory.initElements(Driver.getDriver(), this);
+ }
+
+
+ @FindBy(id = "column-a")
+ public WebElement firstColumn;
+
+
+ @FindBy(id = "column-b")
+ public WebElement secondColumn;
+}
diff --git a/src/test/java/task/pages/DropdownPage.java b/src/test/java/task/pages/DropdownPage.java
new file mode 100644
index 000000000..a69f6799c
--- /dev/null
+++ b/src/test/java/task/pages/DropdownPage.java
@@ -0,0 +1,42 @@
+package task.pages;
+
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+import org.openqa.selenium.support.ui.Select;
+import task.utilities.Driver;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class DropdownPage {
+
+ public DropdownPage(){
+ PageFactory.initElements(Driver.getDriver(), this);
+ }
+
+
+ @FindBy(id = "dropdown")
+ public WebElement dropDown;
+
+ public boolean isSelected(String option) {
+
+
+ Select select = new Select(dropDown);
+
+ List dropDown = select.getOptions();
+
+ for (WebElement eachOption : dropDown) {
+ if (eachOption.getText().equals(option)) { //if the desired option and each are equal
+ select.selectByVisibleText(option);
+ eachOption.isSelected();
+ return true;
+ }
+
+
+
+ }
+ return false;
+ }
+}
diff --git a/src/test/java/task/pages/DynamicContentPage.java b/src/test/java/task/pages/DynamicContentPage.java
new file mode 100644
index 000000000..a41a043be
--- /dev/null
+++ b/src/test/java/task/pages/DynamicContentPage.java
@@ -0,0 +1,11 @@
+package task.pages;
+
+import org.openqa.selenium.support.PageFactory;
+import task.utilities.Driver;
+
+public class DynamicContentPage {
+
+ public DynamicContentPage(){
+ PageFactory.initElements(Driver.getDriver(), this);
+ }
+}
diff --git a/src/test/java/task/pages/DynamicControlsPage.java b/src/test/java/task/pages/DynamicControlsPage.java
new file mode 100644
index 000000000..2ac2ec57f
--- /dev/null
+++ b/src/test/java/task/pages/DynamicControlsPage.java
@@ -0,0 +1,30 @@
+package task.pages;
+
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+import task.utilities.Driver;
+
+public class DynamicControlsPage {
+
+ public DynamicControlsPage(){
+ PageFactory.initElements(Driver.getDriver(), this);
+ }
+
+
+ @FindBy(css = "button[onclick='swapCheckbox()']")
+ public WebElement removeButton;
+
+
+ @FindBy(css = "button[onclick='swapCheckbox()']")
+ public WebElement addButton;
+
+ @FindBy(css = "button[onclick='swapInput()']")
+ public WebElement enableButton;
+
+
+ @FindBy(css = "input[type='text']")
+ public WebElement inputField;
+
+}
diff --git a/src/test/java/task/pages/DynamicLoadingPage.java b/src/test/java/task/pages/DynamicLoadingPage.java
new file mode 100644
index 000000000..34686d82f
--- /dev/null
+++ b/src/test/java/task/pages/DynamicLoadingPage.java
@@ -0,0 +1,31 @@
+package task.pages;
+
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+import org.openqa.selenium.support.ui.ExpectedConditions;
+import org.openqa.selenium.support.ui.WebDriverWait;
+import task.utilities.Driver;
+
+import java.time.Duration;
+
+public class DynamicLoadingPage {
+
+ public DynamicLoadingPage(){
+ PageFactory.initElements(Driver.getDriver(), this);
+ }
+
+
+ @FindBy(id = "finish")
+ public WebElement textMessage;
+
+
+ @FindBy(xpath = "//button[.='Start']")
+ public WebElement startButton;
+
+
+ @FindBy(id = "loading")
+ public WebElement loadingBar;
+
+
+}
diff --git a/src/test/java/task/pages/FileDownloadPage.java b/src/test/java/task/pages/FileDownloadPage.java
new file mode 100644
index 000000000..9c4cf086d
--- /dev/null
+++ b/src/test/java/task/pages/FileDownloadPage.java
@@ -0,0 +1,25 @@
+package task.pages;
+
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.remote.Browser;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+import task.utilities.BrowserUtils;
+import task.utilities.Driver;
+
+public class FileDownloadPage {
+
+ public FileDownloadPage(){
+ PageFactory.initElements(Driver.getDriver(), this);
+ }
+
+ @FindBy(linkText = "some-file.txt")
+ public WebElement file;
+
+
+ public void downloadFile(){
+ file.click();
+ BrowserUtils.waitFor(5);
+ }
+
+}
diff --git a/src/test/java/task/pages/FileUploadPage.java b/src/test/java/task/pages/FileUploadPage.java
new file mode 100644
index 000000000..0d2239db7
--- /dev/null
+++ b/src/test/java/task/pages/FileUploadPage.java
@@ -0,0 +1,50 @@
+package task.pages;
+
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+import task.utilities.BrowserUtils;
+import task.utilities.Driver;
+
+import java.io.File;
+
+public class FileUploadPage {
+
+
+ public FileUploadPage(){
+ PageFactory.initElements(Driver.getDriver(), this);
+ }
+
+
+
+
+ @FindBy(id = "file-upload")
+ public WebElement chooseFileButton;
+
+
+ @FindBy(id = "file-submit")
+ public WebElement uploadButton;
+
+
+ @FindBy(id = "uploaded-files")
+ public WebElement uploadedFiles;
+
+
+ public void uploadFile(String fileName){
+
+
+ String filePath = System.getProperty("user.home") + File.separator + "Downloads" + File.separator + fileName;
+
+ chooseFileButton.sendKeys(filePath);
+
+
+ uploadButton.click();
+
+
+
+ }
+
+
+
+
+}
diff --git a/src/test/java/task/pages/FloatingMenuPage.java b/src/test/java/task/pages/FloatingMenuPage.java
new file mode 100644
index 000000000..b62540d98
--- /dev/null
+++ b/src/test/java/task/pages/FloatingMenuPage.java
@@ -0,0 +1,23 @@
+package task.pages;
+
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+import task.utilities.Driver;
+
+public class FloatingMenuPage {
+
+ public FloatingMenuPage(){
+ PageFactory.initElements(Driver.getDriver(), this);
+ }
+
+
+
+
+ @FindBy(id = "menu")
+ public WebElement floatingMenu;
+
+
+
+
+}
diff --git a/src/test/java/task/pages/IframePage.java b/src/test/java/task/pages/IframePage.java
new file mode 100644
index 000000000..eb78dc558
--- /dev/null
+++ b/src/test/java/task/pages/IframePage.java
@@ -0,0 +1,21 @@
+package task.pages;
+
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+import task.utilities.Driver;
+
+public class IframePage {
+
+ public IframePage(){
+ PageFactory.initElements(Driver.getDriver(), this);
+ }
+
+ @FindBy(id = "mce_0_ifr")
+ public WebElement iframe;
+
+
+ @FindBy(id = "tinymce")
+ public WebElement textArea;
+
+}
diff --git a/src/test/java/task/pages/JavaScriptAlertsPage.java b/src/test/java/task/pages/JavaScriptAlertsPage.java
new file mode 100644
index 000000000..183070aab
--- /dev/null
+++ b/src/test/java/task/pages/JavaScriptAlertsPage.java
@@ -0,0 +1,34 @@
+package task.pages;
+
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+import task.utilities.Driver;
+
+public class JavaScriptAlertsPage {
+
+
+ public JavaScriptAlertsPage(){
+ PageFactory.initElements(Driver.getDriver(), this);
+ }
+
+
+ @FindBy(xpath = "//button[@onclick='jsAlert()']")
+ public WebElement jsAlert;
+
+
+ @FindBy(xpath = "//button[@onclick='jsConfirm()']")
+ public WebElement jsConfirm;
+
+ @FindBy(xpath = "//button[@onclick='jsPrompt()']")
+ public WebElement jsPrompt;
+
+ @FindBy(id = "result")
+ public WebElement result;
+
+
+
+
+
+
+}
diff --git a/src/test/java/task/pages/JavaScriptErrorPage.java b/src/test/java/task/pages/JavaScriptErrorPage.java
new file mode 100644
index 000000000..1cc6ff57a
--- /dev/null
+++ b/src/test/java/task/pages/JavaScriptErrorPage.java
@@ -0,0 +1,14 @@
+package task.pages;
+
+import org.openqa.selenium.support.PageFactory;
+import task.utilities.Driver;
+
+public class JavaScriptErrorPage {
+
+ public JavaScriptErrorPage(){
+ PageFactory.initElements(Driver.getDriver(), this);
+ }
+
+
+
+}
diff --git a/src/test/java/task/pages/LoginPage.java b/src/test/java/task/pages/LoginPage.java
new file mode 100644
index 000000000..5f4f75f17
--- /dev/null
+++ b/src/test/java/task/pages/LoginPage.java
@@ -0,0 +1,34 @@
+package task.pages;
+
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+import task.utilities.Driver;
+
+public class LoginPage {
+
+ public LoginPage(){
+ PageFactory.initElements(Driver.getDriver(), this);
+ }
+
+ @FindBy(id="username")
+ public WebElement userName;
+
+
+ @FindBy(id="password")
+ public WebElement password;
+
+ @FindBy(xpath="//button[@class='radius']")
+ public WebElement loginButton;
+
+ @FindBy(xpath = "//div[@class='flash success']")
+ public WebElement successMessage;
+
+
+ @FindBy(xpath = "//div[@class='flash error']")
+ public WebElement failureMessage;
+
+
+
+
+}
diff --git a/src/test/java/task/pages/MouseHoverPage.java b/src/test/java/task/pages/MouseHoverPage.java
new file mode 100644
index 000000000..606967b22
--- /dev/null
+++ b/src/test/java/task/pages/MouseHoverPage.java
@@ -0,0 +1,57 @@
+package task.pages;
+
+
+import org.openqa.selenium.JavascriptExecutor;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.interactions.Actions;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+import task.utilities.BrowserUtils;
+import task.utilities.Driver;
+
+import java.util.List;
+
+public class MouseHoverPage {
+
+ public MouseHoverPage(){
+ PageFactory.initElements(Driver.getDriver(), this);
+ }
+
+ Actions actions = new Actions(Driver.getDriver());
+
+ //JavascriptExecutor js = (JavascriptExecutor) Driver.getDriver();
+
+
+ @FindBy(xpath = "//img[@alt='User Avatar']")
+ public List images;
+
+ @FindBy(xpath = "//div[@class='figcaption']/h5")
+ public List additionalText;
+
+
+ public String hoverOver(List listOfElements, int index){
+
+ actions.moveToElement(listOfElements.get(index)).perform();
+ BrowserUtils.waitForVisibility(additionalText.get(index), 15);
+
+ return additionalText.get(index).getText();
+ }
+
+
+
+
+
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/test/java/task/pages/NotificationMessagePage.java b/src/test/java/task/pages/NotificationMessagePage.java
new file mode 100644
index 000000000..6b84c973c
--- /dev/null
+++ b/src/test/java/task/pages/NotificationMessagePage.java
@@ -0,0 +1,22 @@
+package task.pages;
+
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+import task.utilities.Driver;
+
+public class NotificationMessagePage {
+
+
+ public NotificationMessagePage(){
+ PageFactory.initElements(Driver.getDriver(), this);
+ }
+
+
+ @FindBy(linkText = "Click here")
+ public WebElement notificationLink;
+
+ @FindBy(id = "flash")
+ public WebElement messageBox;
+
+}
diff --git a/src/test/java/task/pages/OpenInNewTabPage.java b/src/test/java/task/pages/OpenInNewTabPage.java
new file mode 100644
index 000000000..a3a14a95a
--- /dev/null
+++ b/src/test/java/task/pages/OpenInNewTabPage.java
@@ -0,0 +1,26 @@
+package task.pages;
+
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+import task.utilities.Driver;
+
+import java.util.Set;
+
+public class OpenInNewTabPage {
+
+
+ public OpenInNewTabPage(){
+ PageFactory.initElements(Driver.getDriver(), this);
+ }
+
+
+ @FindBy(linkText = "Click Here")
+ public WebElement link;
+
+
+
+
+
+
+}
diff --git a/src/test/java/task/tests/CheckBoxes.java b/src/test/java/task/tests/CheckBoxes.java
new file mode 100644
index 000000000..8c607f333
--- /dev/null
+++ b/src/test/java/task/tests/CheckBoxes.java
@@ -0,0 +1,55 @@
+package task.tests;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import task.pages.CheckBoxesPage;
+import task.utilities.Driver;
+
+public class CheckBoxes extends CheckBoxesPage{
+
+
+
+ CheckBoxesPage checkBoxesPage = new CheckBoxesPage();
+
+
+ @BeforeEach
+ public void setUp(){
+ Driver.getDriver().get("http://localhost:7080/checkboxes");
+ }
+
+
+ @Test
+ public void testCheckBox1() {
+ checkBoxesPage.clickCheckBox1();
+ Assertions.assertTrue(checkBoxesPage.isCheckBox1Selected());
+
+
+ checkBoxesPage.clickCheckBox1();
+ Assertions.assertFalse(checkBoxesPage.isCheckBox1Selected());
+
+
+
+ }
+
+ @Test
+ public void testCheckBox2() {
+
+ checkBoxesPage.clickCheckBox2();
+ Assertions.assertTrue(!checkBoxesPage.isCheckBox2Selected());
+
+ checkBoxesPage.clickCheckBox2();
+ Assertions.assertTrue(checkBoxesPage.isCheckBox2Selected());
+ }
+
+
+
+ @AfterEach
+ public void tearDown(){
+ Driver.closeDriver();
+ }
+
+
+
+}
diff --git a/src/test/java/task/tests/ContextMenu.java b/src/test/java/task/tests/ContextMenu.java
new file mode 100644
index 000000000..70a6783ff
--- /dev/null
+++ b/src/test/java/task/tests/ContextMenu.java
@@ -0,0 +1,52 @@
+package task.tests;
+
+import org.junit.jupiter.api.*;
+import org.openqa.selenium.Alert;
+import org.openqa.selenium.interactions.Actions;
+import task.pages.ContextMenuPage;
+import task.utilities.Driver;
+
+public class ContextMenu {
+
+
+ ContextMenuPage contextMenuPage = new ContextMenuPage();
+ String expectedText = "You selected a context menu";
+ String actualText;
+
+
+ @BeforeEach
+ public void setUp(){
+ Driver.getDriver().get("http://localhost:7080/context_menu");
+
+
+ }
+
+
+ @Test
+ public void verifyContextClickTest(){
+
+
+ Actions actions = new Actions(Driver.getDriver());
+ actions.contextClick(contextMenuPage.contextMenuIcon).perform();
+
+ Alert alert = Driver.getDriver().switchTo().alert();
+ actualText = alert.getText();
+
+ alert.dismiss();
+
+ Assertions.assertEquals(actualText, expectedText);
+
+
+
+ }
+
+
+
+ @AfterEach
+ public void tearDown(){
+
+ Driver.closeDriver();
+
+ }
+
+}
diff --git a/src/test/java/task/tests/DragAndDrop.java b/src/test/java/task/tests/DragAndDrop.java
new file mode 100644
index 000000000..f2c8b1f1e
--- /dev/null
+++ b/src/test/java/task/tests/DragAndDrop.java
@@ -0,0 +1,46 @@
+package task.tests;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.openqa.selenium.interactions.Actions;
+import task.pages.DragAndDropPage;
+import task.utilities.Driver;
+
+public class DragAndDrop {
+
+ DragAndDropPage dragAndDropPage = new DragAndDropPage();
+
+ @BeforeEach
+ public void setUp(){
+ Driver.getDriver().get("http://localhost:7080/drag_and_drop");
+ }
+
+
+ @Test
+ public void testDragAndDrop(){
+
+
+ String boxAbefore = dragAndDropPage.firstColumn.getText(); //first column == A
+ String boxBbefore = dragAndDropPage.secondColumn.getText(); //second column == B
+
+ Actions actions = new Actions(Driver.getDriver());
+ actions.dragAndDrop(dragAndDropPage.firstColumn, dragAndDropPage.secondColumn).perform();
+
+ String boxAafter = dragAndDropPage.secondColumn.getText(); //second column == A
+ String boxBafter = dragAndDropPage.firstColumn.getText(); //first column == B
+
+
+
+ Assertions.assertEquals(boxAbefore,boxBafter); //A swapped with B
+ Assertions.assertEquals(boxBbefore, boxAafter); //B in the first column(A)
+
+ }
+
+
+ @AfterEach
+ public void tearDown(){
+ Driver.closeDriver();
+ }
+}
diff --git a/src/test/java/task/tests/Dropdown.java b/src/test/java/task/tests/Dropdown.java
new file mode 100644
index 000000000..036ec2048
--- /dev/null
+++ b/src/test/java/task/tests/Dropdown.java
@@ -0,0 +1,41 @@
+package task.tests;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import task.pages.DropdownPage;
+import task.utilities.Driver;
+
+public class Dropdown extends DropdownPage{
+
+
+
+
+ @BeforeEach
+ public void setUp(){
+ Driver.getDriver().get("http://localhost:7080/dropdown");
+ }
+
+
+
+
+ @Test
+ public void testDropdown(){
+
+ dropDown.click();
+
+ Assertions.assertTrue(isSelected("Option 1"));
+ Assertions.assertTrue(isSelected("Option 2"));
+ }
+
+
+
+ @AfterEach
+ public void tearDown(){
+ Driver.closeDriver();
+ }
+
+
+
+}
diff --git a/src/test/java/task/tests/DynamicContent.java b/src/test/java/task/tests/DynamicContent.java
new file mode 100644
index 000000000..3fadfa330
--- /dev/null
+++ b/src/test/java/task/tests/DynamicContent.java
@@ -0,0 +1,48 @@
+package task.tests;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.openqa.selenium.By;
+import task.pages.DynamicContentPage;
+import task.utilities.Driver;
+
+public class DynamicContent extends DynamicContentPage {
+
+
+
+
+ @BeforeEach
+ public void setUp(){
+ Driver.getDriver().get("http://localhost:7080/dynamic_content");
+ }
+
+
+
+
+ @Test
+ public void testDynamicContent(){
+
+
+ String contentBeforeRefresh = Driver.getDriver().findElement(By.tagName("body")).getText();
+
+ // Refresh the page multiple times and verify that the content changes each time
+ for (int i = 0; i < 3; i++) {
+ Driver.getDriver().navigate().refresh();
+ String refreshedContent = Driver.getDriver().findElement(By.tagName("body")).getText();
+
+ Assertions.assertNotEquals(refreshedContent, contentBeforeRefresh);
+ }
+
+ }
+
+
+
+
+
+ @AfterEach
+ public void tearDown(){
+ Driver.closeDriver();
+ }
+}
diff --git a/src/test/java/task/tests/DynamicControls.java b/src/test/java/task/tests/DynamicControls.java
new file mode 100644
index 000000000..cc59591e6
--- /dev/null
+++ b/src/test/java/task/tests/DynamicControls.java
@@ -0,0 +1,62 @@
+package task.tests;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.openqa.selenium.By;
+import org.openqa.selenium.support.ui.ExpectedConditions;
+import org.openqa.selenium.support.ui.WebDriverWait;
+import task.pages.DynamicControlsPage;
+import task.utilities.Driver;
+
+import java.time.Duration;
+
+public class DynamicControls extends DynamicControlsPage {
+
+ DynamicControlsPage dynamicControlsPage = new DynamicControlsPage();
+
+
+ @BeforeEach
+ public void setUp(){
+ Driver.getDriver().get("http://localhost:7080/dynamic_controls");
+ }
+
+
+ @Test
+ public void testDynamicControls(){
+
+ removeButton.click();
+
+ WebDriverWait wait = new WebDriverWait(Driver.getDriver(), Duration.ofSeconds(10));
+ wait.until(ExpectedConditions.invisibilityOfElementLocated(By.id("checkbox")));
+
+
+ boolean checkBoxPresence = Driver.getDriver().findElements(By.id("checkbox")).size() > 0;
+ Assertions.assertTrue(!checkBoxPresence);
+
+
+ addButton.click();
+ wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("checkbox")));
+
+
+ checkBoxPresence = Driver.getDriver().findElements(By.id("checkbox")).size() > 0;
+ Assertions.assertTrue(checkBoxPresence);
+
+
+ enableButton.click();
+ wait.until(ExpectedConditions.elementToBeClickable(inputField));
+
+
+ boolean isEnabled = inputField.isEnabled();
+ Assertions.assertTrue(isEnabled);
+ }
+
+
+
+
+ @AfterEach
+ public void tearDown(){
+ Driver.closeDriver();
+ }
+}
diff --git a/src/test/java/task/tests/DynamicLoading.java b/src/test/java/task/tests/DynamicLoading.java
new file mode 100644
index 000000000..1e32405d9
--- /dev/null
+++ b/src/test/java/task/tests/DynamicLoading.java
@@ -0,0 +1,46 @@
+package task.tests;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import task.pages.DynamicLoadingPage;
+import task.utilities.BrowserUtils;
+import task.utilities.Driver;
+
+import java.time.Duration;
+
+public class DynamicLoading {
+
+
+ DynamicLoadingPage dynamicLoadingPage = new DynamicLoadingPage();
+ String expectedText = "Hello World!";
+ String actualText;
+
+ @BeforeEach
+ public void setUp(){
+ Driver.getDriver().get("http://localhost:7080/dynamic_loading/2");
+ }
+
+
+ @Test
+ public void testDynamicLoading(){
+
+ BrowserUtils.waitForVisibility(dynamicLoadingPage.startButton, 10);
+ dynamicLoadingPage.startButton.click();
+
+ BrowserUtils.waitForVisibility(dynamicLoadingPage.textMessage, 10);
+
+ actualText = dynamicLoadingPage.textMessage.getText();
+ Assertions.assertEquals(expectedText, actualText);
+
+ }
+
+
+
+
+ @AfterEach
+ public void tearDown(){
+ Driver.closeDriver();
+ }
+}
diff --git a/src/test/java/task/tests/FileDownload.java b/src/test/java/task/tests/FileDownload.java
new file mode 100644
index 000000000..73fb97b40
--- /dev/null
+++ b/src/test/java/task/tests/FileDownload.java
@@ -0,0 +1,51 @@
+package task.tests;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import task.pages.FileDownloadPage;
+import task.utilities.Driver;
+
+import java.io.File;
+
+public class FileDownload {
+
+
+
+ FileDownloadPage fileDownloadPage = new FileDownloadPage();
+
+
+
+ @BeforeEach
+ public void setUp(){
+ Driver.getDriver().get("http://localhost:7080/download");
+ }
+
+
+
+ @Test
+ public void testFileDownload(){
+
+ fileDownloadPage.downloadFile();
+
+ String fileName = fileDownloadPage.file.getText();
+
+ //to make it OS independent, System.getProperty() and File.separator
+ String downloadsDir = System.getProperty("user.home") + File.separator + "Downloads" + File.separator;
+ File fileDownloaded = new File(downloadsDir + fileName);
+
+
+ Assertions.assertTrue(fileDownloaded.exists());
+
+
+
+ }
+
+
+
+ @AfterEach
+ public void tearDown(){
+ Driver.closeDriver();
+ }
+}
diff --git a/src/test/java/task/tests/FileUpload.java b/src/test/java/task/tests/FileUpload.java
new file mode 100644
index 000000000..caa72ba9b
--- /dev/null
+++ b/src/test/java/task/tests/FileUpload.java
@@ -0,0 +1,45 @@
+package task.tests;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import task.pages.FileUploadPage;
+import task.utilities.Driver;
+import java.io.File;
+
+public class FileUpload {
+
+
+ FileUploadPage fileUploadPage = new FileUploadPage();
+
+ String actualUploadFileName;
+ String expectedUploadFileName = "some-file.txt";
+
+
+ @BeforeEach
+ public void setUp(){
+ Driver.getDriver().get("http://localhost:7080/upload");
+ }
+
+
+
+ @Test
+ public void testFileUpload(){
+
+ fileUploadPage.uploadFile(expectedUploadFileName);
+
+ actualUploadFileName = fileUploadPage.uploadedFiles.getText();
+
+ Assertions.assertEquals(expectedUploadFileName, actualUploadFileName);
+
+
+ }
+
+
+ @AfterEach
+ public void tearDown(){
+ Driver.closeDriver();
+ }
+
+}
diff --git a/src/test/java/task/tests/FloatingMenu.java b/src/test/java/task/tests/FloatingMenu.java
new file mode 100644
index 000000000..e081157f2
--- /dev/null
+++ b/src/test/java/task/tests/FloatingMenu.java
@@ -0,0 +1,43 @@
+package task.tests;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.openqa.selenium.JavascriptExecutor;
+import task.pages.FloatingMenuPage;
+import task.utilities.Driver;
+
+
+
+public class FloatingMenu {
+
+
+ FloatingMenuPage floatingMenuPage = new FloatingMenuPage();
+
+
+ @BeforeEach
+ public void setUp(){
+ Driver.getDriver().get("http://localhost:7080/floating_menu");
+ }
+
+
+ @Test
+ public void testFloatingMenu(){
+
+
+ JavascriptExecutor js = (JavascriptExecutor) Driver.getDriver();
+ js.executeScript("window.scrollBy(0,653)");
+
+
+
+ Assertions.assertTrue(floatingMenuPage.floatingMenu.isDisplayed());
+
+ }
+
+
+ @AfterEach
+ public void tearDown(){
+ Driver.closeDriver();
+ }
+}
diff --git a/src/test/java/task/tests/Iframe.java b/src/test/java/task/tests/Iframe.java
new file mode 100644
index 000000000..62737fb99
--- /dev/null
+++ b/src/test/java/task/tests/Iframe.java
@@ -0,0 +1,46 @@
+package task.tests;
+
+import jdk.swing.interop.LightweightFrameWrapper;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import task.pages.IframePage;
+import task.utilities.Driver;
+
+
+public class Iframe {
+
+
+ IframePage iframePage = new IframePage();
+ String expectedText = "This is the text area!";
+ String actualText;
+
+
+ @BeforeEach
+ public void setUp(){
+ Driver.getDriver().get("http://localhost:7080/iframe");
+ }
+
+
+ @Test
+ public void testIframe(){
+
+ Driver.getDriver().switchTo().frame(iframePage.iframe);
+
+ iframePage.textArea.clear();
+ iframePage.textArea.sendKeys(expectedText);
+
+
+ actualText = iframePage.textArea.getText();
+
+ Assertions.assertEquals(expectedText,actualText);
+
+ }
+
+
+ @AfterEach
+ public void tearDown(){
+ Driver.closeDriver();
+ }
+}
diff --git a/src/test/java/task/tests/JavaScriptAlerts.java b/src/test/java/task/tests/JavaScriptAlerts.java
new file mode 100644
index 000000000..5f21f61c5
--- /dev/null
+++ b/src/test/java/task/tests/JavaScriptAlerts.java
@@ -0,0 +1,72 @@
+package task.tests;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.openqa.selenium.Alert;
+import task.pages.JavaScriptAlertsPage;
+import task.utilities.Driver;
+
+public class JavaScriptAlerts {
+
+ JavaScriptAlertsPage jsPage = new JavaScriptAlertsPage();
+ Alert alert;
+ @BeforeEach
+ public void setUp(){
+ Driver.getDriver().get("http://localhost:7080/javascript_alerts");
+ }
+
+
+
+ @Test
+ public void testJSalerts(){
+
+ jsPage.jsAlert.click();
+ alert = Driver.getDriver().switchTo().alert();
+ alert.dismiss();
+
+ String expectedMessage = "You successfuly clicked an alert";
+ String actualMessage = jsPage.result.getText();
+ Assertions.assertEquals(expectedMessage, actualMessage);
+
+ }
+
+ @Test
+ public void testJSconfirm(){
+
+ jsPage.jsConfirm.click();
+ alert = Driver.getDriver().switchTo().alert();
+ alert.accept();
+
+ String expectedMessage = "You clicked: Ok";
+ String actualMessage = jsPage.result.getText();
+ Assertions.assertEquals(expectedMessage, actualMessage);
+
+
+ }
+
+ @Test
+ public void testJSprompt(){
+
+ jsPage.jsPrompt.click();
+ alert = Driver.getDriver().switchTo().alert();
+ alert.sendKeys("The message!");
+ alert.accept();
+
+ String expectedText = "The message!";
+ String actualText = jsPage.result.getText();
+ System.out.println("actualText = " + actualText);
+ System.out.println("expectedText = " + expectedText);
+
+ Assertions.assertTrue(actualText.contains(expectedText) );
+
+ }
+
+
+ @AfterEach
+ public void tearDown() {
+ Driver.closeDriver();
+ }
+
+}
diff --git a/src/test/java/task/tests/JavaScriptError.java b/src/test/java/task/tests/JavaScriptError.java
new file mode 100644
index 000000000..8fc5eb5c1
--- /dev/null
+++ b/src/test/java/task/tests/JavaScriptError.java
@@ -0,0 +1,51 @@
+package task.tests;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.openqa.selenium.logging.LogEntries;
+import org.openqa.selenium.logging.LogEntry;
+import org.openqa.selenium.logging.LogType;
+import task.utilities.BrowserUtils;
+import task.utilities.Driver;
+
+import java.util.logging.Level;
+
+public class JavaScriptError {
+
+ @BeforeEach
+ public void setUp(){
+ Driver.getDriver().get("http://localhost:7080/javascript_error");
+ }
+
+
+ @Test
+ public void testJavaScriptError(){
+ BrowserUtils.waitFor(3);
+ BrowserUtils.switchWindow(0);
+
+
+ BrowserUtils.waitFor(3);
+
+ LogEntries logEntries = Driver.getDriver().manage().logs().get(LogType.BROWSER);
+ for (LogEntry entry : logEntries) {
+ if (entry.getLevel().equals(Level.SEVERE)){
+ String actualErrorMessage = entry.getMessage();
+
+ if (actualErrorMessage.contains("Cannot read property 'xyz' of undefined")){
+ Assertions.assertTrue(Driver.getDriver().getPageSource().contains(actualErrorMessage));
+ break;
+ }
+ }
+ }
+ }
+
+
+ @AfterEach
+ public void tearDown() {
+ Driver.closeDriver();
+ }
+
+
+}
diff --git a/src/test/java/task/tests/LoginFailure.java b/src/test/java/task/tests/LoginFailure.java
new file mode 100644
index 000000000..0f1477c04
--- /dev/null
+++ b/src/test/java/task/tests/LoginFailure.java
@@ -0,0 +1,50 @@
+package task.tests;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import task.pages.LoginPage;
+import task.utilities.BrowserUtils;
+import task.utilities.Driver;
+
+public class LoginFailure {
+
+
+
+ LoginPage loginPage = new LoginPage();
+ @BeforeEach
+ public void setUp(){
+ Driver.getDriver().get("http://localhost:7080/login");
+
+
+ }
+
+
+ @Test
+ public void testLoginFailure() {
+
+
+ loginPage.userName.sendKeys("invalidUsername");
+
+ loginPage.password.sendKeys("WrongPassword!");
+
+ loginPage.loginButton.click();
+ BrowserUtils.waitFor(2);
+
+
+ Assertions.assertTrue(loginPage.failureMessage.isDisplayed());
+
+
+
+ }
+
+
+
+ @AfterEach
+ public void tearDown(){
+
+ Driver.closeDriver();
+
+ }
+}
diff --git a/src/test/java/task/tests/LoginSuccess.java b/src/test/java/task/tests/LoginSuccess.java
new file mode 100644
index 000000000..0b1f3aa1e
--- /dev/null
+++ b/src/test/java/task/tests/LoginSuccess.java
@@ -0,0 +1,46 @@
+package task.tests;
+
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import task.pages.LoginPage;
+import task.utilities.BrowserUtils;
+import task.utilities.Driver;
+
+
+
+public class LoginSuccess {
+
+
+ LoginPage loginPage = new LoginPage();
+ @BeforeEach
+ public void setUp(){
+ Driver.getDriver().get("http://localhost:7080/login");
+ }
+
+ @Test
+ public void testLoginSuccessful() {
+
+ loginPage.userName.sendKeys("tomsmith");
+
+ loginPage.password.sendKeys("SuperSecretPassword!");
+
+ loginPage.loginButton.click();
+ BrowserUtils.waitFor(2);
+
+
+ Assertions.assertTrue(loginPage.successMessage.isDisplayed());
+
+
+}
+
+
+ @AfterEach
+ public void tearDown(){
+ Driver.closeDriver();
+ }
+
+
+}
diff --git a/src/test/java/task/tests/MouseHover.java b/src/test/java/task/tests/MouseHover.java
new file mode 100644
index 000000000..1e59a9c18
--- /dev/null
+++ b/src/test/java/task/tests/MouseHover.java
@@ -0,0 +1,64 @@
+package task.tests;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.openqa.selenium.WebElement;
+import task.pages.MouseHoverPage;
+import task.utilities.Driver;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class MouseHover {
+
+ MouseHoverPage mouseHoverPage = new MouseHoverPage();
+
+ List expectedTexts = new ArrayList<>();
+
+
+
+ @BeforeEach
+ public void setUp(){
+ Driver.getDriver().get("http://localhost:7080/hovers");
+ }
+
+
+
+ @Test
+ public void testMouseHover() {
+
+ List allImages = mouseHoverPage.images; // get all images
+
+
+ //loop and hover over each
+ //hover over 1st image
+
+ expectedTexts.add("name: user1");
+ expectedTexts.add("name: user2");
+ expectedTexts.add("name: user3");
+
+
+ for (int i = 0; i < expectedTexts.size(); i++) {
+
+ String actualText = mouseHoverPage.hoverOver(allImages, i);
+
+ Assertions.assertEquals(expectedTexts.get(i), actualText);
+
+
+
+ }
+ }
+
+
+
+
+
+
+ @AfterEach
+ public void tearDown() {
+ Driver.closeDriver();
+ }
+
+ }
\ No newline at end of file
diff --git a/src/test/java/task/tests/NotificationMessage.java b/src/test/java/task/tests/NotificationMessage.java
new file mode 100644
index 000000000..6c48b9181
--- /dev/null
+++ b/src/test/java/task/tests/NotificationMessage.java
@@ -0,0 +1,64 @@
+package task.tests;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import task.pages.NotificationMessagePage;
+import task.utilities.Driver;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+public class NotificationMessage {
+
+
+ NotificationMessagePage notificationMessagePage = new NotificationMessagePage();
+
+ List expectedMessages = new ArrayList<>();
+
+ String actualMessage;
+
+
+ @BeforeEach
+ public void setUp(){
+ Driver.getDriver().get("http://localhost:7080/notification_message_rendered");
+ }
+
+
+ @Test
+ public void testNotificationMessage(){
+
+ expectedMessages.add("Action successful");
+ expectedMessages.add("Action Unsuccessful");
+ expectedMessages.add("Action unsuccessful, please try again");
+
+
+ boolean isShown = false;
+
+ for (int i = 0; i < 5; i++) {
+
+ notificationMessagePage.notificationLink.click();
+ actualMessage = notificationMessagePage.messageBox.getText().trim();
+
+
+ Assertions.assertTrue(actualMessage.contains("Action successful")
+ || actualMessage.contains("Action unsuccesful, please try again")
+ || actualMessage.contains("Action Unsuccessful"));
+
+
+
+ }
+
+
+
+
+ }
+
+
+ @AfterEach
+ public void tearDown() {
+ Driver.closeDriver();
+ }
+}
diff --git a/src/test/java/task/tests/OpenInNewTab.java b/src/test/java/task/tests/OpenInNewTab.java
new file mode 100644
index 000000000..c780fc43b
--- /dev/null
+++ b/src/test/java/task/tests/OpenInNewTab.java
@@ -0,0 +1,46 @@
+package task.tests;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import task.pages.OpenInNewTabPage;
+import task.utilities.BrowserUtils;
+import task.utilities.Driver;
+
+public class OpenInNewTab {
+
+
+ OpenInNewTabPage openInNewTabPage = new OpenInNewTabPage();
+ String expectedText = "New Window";
+ String actualText;
+
+ @BeforeEach
+ public void setUp(){
+ Driver.getDriver().get("http://localhost:7080/windows");
+ }
+
+
+
+ @Test
+ public void testOpenInNewTab(){
+
+ openInNewTabPage.link.click();
+
+
+ BrowserUtils.switchWindow(expectedText);
+ actualText = Driver.getDriver().getTitle();
+
+
+ Assertions.assertEquals(expectedText, actualText);
+ }
+
+
+
+
+ @AfterEach
+ public void tearDown() {
+ Driver.closeDriver();
+ }
+
+}
diff --git a/src/test/java/task/utilities/BrowserUtils.java b/src/test/java/task/utilities/BrowserUtils.java
new file mode 100644
index 000000000..0e41c2148
--- /dev/null
+++ b/src/test/java/task/utilities/BrowserUtils.java
@@ -0,0 +1,56 @@
+package task.utilities;
+
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.ui.ExpectedConditions;
+import org.openqa.selenium.support.ui.WebDriverWait;
+
+import java.time.Duration;
+import java.util.ArrayList;
+import java.util.Set;
+
+public class BrowserUtils {
+
+
+
+ public static void waitFor(int seconds) {
+ try {
+ Thread.sleep(seconds * 1000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+
+ public static WebElement waitForVisibility(WebElement element, int time) {
+ WebDriverWait wait = new WebDriverWait(Driver.getDriver(), Duration.ofSeconds(time));
+ return wait.until(ExpectedConditions.visibilityOf(element));
+ }
+
+
+ public static void switchWindow(String expectedText){
+
+ Set allWindowHandles = Driver.getDriver().getWindowHandles();
+
+ for (String each : allWindowHandles) {
+
+ Driver.getDriver().switchTo().window(each);
+
+ if (each.equals(expectedText)){
+ break;
+ }
+ }
+ }
+
+
+ public static void switchWindow(int index){
+
+ ArrayList allWindowHandles = new ArrayList<>(Driver.getDriver().getWindowHandles());
+
+ Driver.getDriver().switchTo().window(allWindowHandles.get(index));
+ }
+
+
+
+
+ }
+
diff --git a/src/test/java/task/utilities/Driver.java b/src/test/java/task/utilities/Driver.java
new file mode 100644
index 000000000..42be04484
--- /dev/null
+++ b/src/test/java/task/utilities/Driver.java
@@ -0,0 +1,40 @@
+package task.utilities;
+
+import io.github.bonigarcia.wdm.WebDriverManager;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.chrome.ChromeDriver;
+import org.openqa.selenium.chrome.ChromeOptions;
+import org.openqa.selenium.firefox.FirefoxDriver;
+
+import java.time.Duration;
+
+public class Driver {
+
+
+ private static InheritableThreadLocal driverPool = new InheritableThreadLocal<>();
+
+ public static WebDriver getDriver() {
+
+ if (driverPool.get() == null) {
+
+
+ WebDriverManager.chromedriver().setup();
+ ChromeOptions options = new ChromeOptions();
+ options.addArguments("--remote-allow-origins=*");
+ driverPool.set(new ChromeDriver(options));
+ driverPool.get().manage().window().maximize();
+ driverPool.get().manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
+
+ }
+
+ return driverPool.get();
+ }
+
+ public static void closeDriver() {
+
+ if (driverPool.get() != null){
+ driverPool.get().quit();
+ driverPool.remove();
+ }
+ }
+}
diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
new file mode 100644
index 000000000..0fa5ecfdf
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
@@ -0,0 +1,37 @@
+task/pages/DynamicContentPage.class
+task/pages/DynamicControlsPage.class
+task/tests/FloatingMenu.class
+task/tests/DragAndDrop.class
+task/pages/JavaScriptErrorPage.class
+task/utilities/BrowserUtils.class
+task/tests/NotificationMessage.class
+task/pages/FileUploadPage.class
+task/tests/ContextMenu.class
+task/tests/Iframe.class
+task/tests/OpenInNewTab.class
+task/pages/JavaScriptAlertsPage.class
+task/tests/LoginFailure.class
+task/pages/DragAndDropPage.class
+task/utilities/Driver.class
+task/tests/JavaScriptAlerts.class
+task/pages/ContextMenuPage.class
+task/tests/CheckBoxes.class
+task/tests/MouseHover.class
+task/pages/FileDownloadPage.class
+task/pages/DropdownPage.class
+task/pages/NotificationMessagePage.class
+task/pages/LoginPage.class
+task/pages/MouseHoverPage.class
+task/pages/CheckBoxesPage.class
+task/tests/JavaScriptError.class
+task/pages/DynamicLoadingPage.class
+task/tests/DynamicLoading.class
+task/tests/FileUpload.class
+task/tests/LoginSuccess.class
+task/tests/DynamicContent.class
+task/tests/FileDownload.class
+task/tests/Dropdown.class
+task/pages/OpenInNewTabPage.class
+task/tests/DynamicControls.class
+task/pages/FloatingMenuPage.class
+task/pages/IframePage.class
diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 000000000..66ae2bb3d
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
@@ -0,0 +1,37 @@
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/tests/FileDownload.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/pages/FloatingMenuPage.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/pages/CheckBoxesPage.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/tests/MouseHover.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/pages/DynamicLoadingPage.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/utilities/BrowserUtils.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/pages/MouseHoverPage.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/tests/FileUpload.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/pages/DropdownPage.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/tests/LoginSuccess.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/pages/FileUploadPage.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/pages/FileDownloadPage.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/tests/OpenInNewTab.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/tests/ContextMenu.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/tests/NotificationMessage.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/tests/DragAndDrop.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/pages/OpenInNewTabPage.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/tests/Dropdown.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/pages/NotificationMessagePage.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/tests/FloatingMenu.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/pages/DragAndDropPage.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/tests/DynamicControls.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/pages/ContextMenuPage.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/tests/JavaScriptError.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/tests/Iframe.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/tests/CheckBoxes.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/pages/JavaScriptAlertsPage.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/pages/DynamicControlsPage.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/pages/JavaScriptErrorPage.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/tests/JavaScriptAlerts.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/utilities/Driver.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/tests/DynamicContent.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/tests/LoginFailure.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/tests/DynamicLoading.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/pages/LoginPage.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/pages/IframePage.java
+/Users/amirdadabaev/IdeaProjects/take-home-webdriver-test/src/test/java/task/pages/DynamicContentPage.java