Browse Source

PW Latest

ankiteno8 4 months ago
commit
d4419b264e
97 changed files with 6974 additions and 0 deletions
  1. 3 0
      .idea/.gitignore
  2. 16 0
      .idea/compiler.xml
  3. 20 0
      .idea/jarRepositories.xml
  4. 14 0
      .idea/misc.xml
  5. 124 0
      .idea/uiDesigner.xml
  6. 6 0
      .idea/vcs.xml
  7. 132 0
      Reports/TestExecutionReport.html
  8. BIN
      Screenshot/Screenshot_2024.06.28.17.13.37.png
  9. 66 0
      log4j2-sample-2024-06-12.log
  10. 18 0
      log4j2-sample-2024-06-13.log
  11. 5 0
      log4j2-sample-2024-06-18.log
  12. 37 0
      log4j2-sample-2024-06-20.log
  13. 7 0
      log4j2-sample-2024-06-21.log
  14. 15 0
      log4j2-sample-2024-06-24.log
  15. 28 0
      log4j2-sample-2024-06-25.log
  16. 9 0
      log4j2-sample-2024-06-26.log
  17. 1 0
      log4j2-sample-2024-06-27.log
  18. 255 0
      log4j2/log4j2-test-automation.log
  19. 106 0
      pom.xml
  20. 27 0
      src/main/java/com/playwrightdemo/Base/TestBase.java
  21. 133 0
      src/main/java/com/playwrightdemo/listeners/ExtentReportListeners.java
  22. 317 0
      src/main/java/com/playwrightdemo/pages/AttendancePage.java
  23. 123 0
      src/main/java/com/playwrightdemo/pages/BasePage.java
  24. 40 0
      src/main/java/com/playwrightdemo/pages/DashboardPage.java
  25. 214 0
      src/main/java/com/playwrightdemo/pages/LeavesPage.java
  26. 109 0
      src/main/java/com/playwrightdemo/pages/LoginPage.java
  27. 230 0
      src/main/java/com/playwrightdemo/pages/WorklogPage.java
  28. BIN
      src/main/java/com/playwrightdemo/testdata/ExcelWriterData.xlsx
  29. BIN
      src/main/java/com/playwrightdemo/testdata/Excellence Login Data.xlsx
  30. 84 0
      src/main/java/com/playwrightdemo/utils/ConfigReader.java
  31. 90 0
      src/main/java/com/playwrightdemo/utils/ExcelUtilities.java
  32. 53 0
      src/main/java/com/playwrightdemo/utils/LoggerUtils.java
  33. 50 0
      src/main/java/com/playwrightdemo/utils/PlayWrightBrowserFactory.java
  34. 60 0
      src/main/java/com/playwrightdemo/utils/TestUtils.java
  35. 31 0
      src/test/java/com/playwright/testrunner/testng.xml
  36. 297 0
      src/test/java/com/playwrightdemo/test/AttendancePageTest.java
  37. 36 0
      src/test/java/com/playwrightdemo/test/BaseTest.java
  38. 63 0
      src/test/java/com/playwrightdemo/test/DashboardPageTest.java
  39. 213 0
      src/test/java/com/playwrightdemo/test/LeavesPageTest.java
  40. 133 0
      src/test/java/com/playwrightdemo/test/LoginPageTest.java
  41. 181 0
      src/test/java/com/playwrightdemo/test/WorklogPageTest.java
  42. 9 0
      src/test/resources/config.properties
  43. 42 0
      src/test/resources/extent-config.xml
  44. 20 0
      src/test/resources/extent.properties
  45. 40 0
      src/test/resources/log4j2.properties
  46. BIN
      target/classes/com/playwrightdemo/Base/TestBase.class
  47. BIN
      target/classes/com/playwrightdemo/listeners/ExtentReportListeners.class
  48. BIN
      target/classes/com/playwrightdemo/pages/AttendancePage.class
  49. BIN
      target/classes/com/playwrightdemo/pages/BasePage.class
  50. BIN
      target/classes/com/playwrightdemo/pages/DashboardPage.class
  51. BIN
      target/classes/com/playwrightdemo/pages/LeavesPage.class
  52. BIN
      target/classes/com/playwrightdemo/pages/LoginPage.class
  53. BIN
      target/classes/com/playwrightdemo/pages/WorklogPage.class
  54. BIN
      target/classes/com/playwrightdemo/testdata/ExcelWriterData.xlsx
  55. BIN
      target/classes/com/playwrightdemo/testdata/Excellence Login Data.xlsx
  56. BIN
      target/classes/com/playwrightdemo/utils/ConfigReader.class
  57. BIN
      target/classes/com/playwrightdemo/utils/ExcelUtilities.class
  58. BIN
      target/classes/com/playwrightdemo/utils/PlayWrightBrowserFactory.class
  59. BIN
      target/classes/com/playwrightdemo/utils/TestUtils.class
  60. 10 0
      target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
  61. 10 0
      target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
  62. 4 0
      target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
  63. 4 0
      target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
  64. 728 0
      target/surefire-reports/Command line suite/Command line test.html
  65. 101 0
      target/surefire-reports/Command line suite/Command line test.xml
  66. 32 0
      target/surefire-reports/Command line suite/testng-failed.xml
  67. 150 0
      target/surefire-reports/TEST-TestSuite.xml
  68. 50 0
      target/surefire-reports/TestSuite.txt
  69. BIN
      target/surefire-reports/bullet_point.png
  70. BIN
      target/surefire-reports/collapseall.gif
  71. 245 0
      target/surefire-reports/emailable-report.html
  72. BIN
      target/surefire-reports/failed.png
  73. 498 0
      target/surefire-reports/index.html
  74. 1 0
      target/surefire-reports/jquery-3.6.0.min.js
  75. 13 0
      target/surefire-reports/junitreports/TEST-com.playwrightdemo.test.AttendancePageTest.xml
  76. 94 0
      target/surefire-reports/junitreports/TEST-com.playwrightdemo.test.BaseTest.xml
  77. 19 0
      target/surefire-reports/junitreports/TEST-com.playwrightdemo.test.LoginPageTest.xml
  78. BIN
      target/surefire-reports/navigator-bullet.png
  79. BIN
      target/surefire-reports/passed.png
  80. BIN
      target/surefire-reports/skipped.png
  81. 32 0
      target/surefire-reports/testng-failed.xml
  82. 326 0
      target/surefire-reports/testng-reports.css
  83. 122 0
      target/surefire-reports/testng-reports.js
  84. 344 0
      target/surefire-reports/testng-reports1.css
  85. 76 0
      target/surefire-reports/testng-reports2.js
  86. 516 0
      target/surefire-reports/testng-results.xml
  87. 31 0
      target/test-classes/com/playwright/testrunner/testng.xml
  88. BIN
      target/test-classes/com/playwrightdemo/test/AttendancePageTest.class
  89. BIN
      target/test-classes/com/playwrightdemo/test/BaseTest.class
  90. BIN
      target/test-classes/com/playwrightdemo/test/DashboardPageTest.class
  91. BIN
      target/test-classes/com/playwrightdemo/test/LeavesPageTest.class
  92. BIN
      target/test-classes/com/playwrightdemo/test/LoginPageTest.class
  93. BIN
      target/test-classes/com/playwrightdemo/test/WorklogPageTest.class
  94. 9 0
      target/test-classes/config.properties
  95. 42 0
      target/test-classes/extent-config.xml
  96. 20 0
      target/test-classes/extent.properties
  97. 40 0
      target/test-classes/log4j2.properties

+ 3 - 0
.idea/.gitignore

@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml

+ 16 - 0
.idea/compiler.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <annotationProcessing>
+      <profile default="true" name="Default" enabled="true" />
+      <profile name="Maven default annotation processors profile" enabled="true">
+        <sourceOutputDir name="target/generated-sources/annotations" />
+        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
+        <outputRelativeToContentRoot value="true" />
+        <module name="PlayWright-Demo" />
+        <module name="PlayWright-ExcellenceAutomation-Demo" />
+        <module name="PlayWright-Automation-Demo" />
+      </profile>
+    </annotationProcessing>
+  </component>
+</project>

+ 20 - 0
.idea/jarRepositories.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="RemoteRepositoriesConfiguration">
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="https://repo.maven.apache.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Maven Central repository" />
+      <option name="url" value="https://repo1.maven.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="jboss.community" />
+      <option name="name" value="JBoss Community repository" />
+      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
+    </remote-repository>
+  </component>
+</project>

+ 14 - 0
.idea/misc.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ExternalStorageConfigurationManager" enabled="true" />
+  <component name="MavenProjectsManager">
+    <option name="originalFiles">
+      <list>
+        <option value="$PROJECT_DIR$/pom.xml" />
+      </list>
+    </option>
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
+</project>

+ 124 - 0
.idea/uiDesigner.xml

@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Palette2">
+    <group name="Swing">
+      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
+      </item>
+      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
+        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
+        <initial-values>
+          <property name="text" value="Button" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="RadioButton" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="CheckBox" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="Label" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
+          <preferred-size width="-1" height="20" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
+      </item>
+    </group>
+  </component>
+</project>

+ 6 - 0
.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+  </component>
+</project>

File diff suppressed because it is too large
+ 132 - 0
Reports/TestExecutionReport.html


BIN
Screenshot/Screenshot_2024.06.28.17.13.37.png


+ 66 - 0
log4j2-sample-2024-06-12.log

@@ -0,0 +1,66 @@
+[INFO ] 2024-06-12 13:54:38.824 [main] LoginPageTest - Test method 'verifyInvalidLogin' passed
+[INFO ] 2024-06-12 13:57:16.290 [main] LoginPageTest - Test method 'verifyInvalidLogin' passed
+[INFO ] 2024-06-12 13:57:48.564 [main] LoginPageTest - Test method 'verifyPageTitle' passed
+[INFO ] 2024-06-12 13:57:48.789 [main] LoginPageTest - Test method 'verifyPageURL' passed
+[INFO ] 2024-06-12 14:00:05.016 [main] LoginPageTest - Test method 'verifyInvalidLogin' passed
+[INFO ] 2024-06-12 14:08:47.499 [main] LoginPageTest - Test method 'verifyInvalidLogin' passed
+[INFO ] 2024-06-12 14:09:16.829 [main] LoginPageTest - Test method 'verifyPageTitle' passed
+[INFO ] 2024-06-12 14:09:16.986 [main] LoginPageTest - Test method 'verifyPageURL' passed
+[INFO ] 2024-06-12 14:09:24.709 [main] LoginPageTest - Test method 'verifyValidLogin' passed
+[INFO ] 2024-06-12 14:09:25.238 [main] DashboardPageTest - Test method 'verifyDashboardLandingPage' passed
+[INFO ] 2024-06-12 16:33:16.354 [main] LoginPageTest - Test method 'verifyInvalidLogin' passed
+[INFO ] 2024-06-12 16:58:02.627 [main] LoginPageTest - Test method 'verifyInvalidLogin' passed
+[INFO ] 2024-06-12 17:03:49.462 [main] LoginPageTest - Test method 'verifyPageURL' passed
+[INFO ] 2024-06-12 17:06:54.083 [main] LoginPageTest - Test method 'verifyInvalidLogin' passed
+[INFO ] 2024-06-12 17:07:27.123 [main] LoginPageTest - Test method 'verifyPageTitle' passed
+[INFO ] 2024-06-12 17:07:27.125 [main] LoginPageTest - Test method 'verifyPageURL' passed
+[INFO ] 2024-06-12 17:07:35.574 [main] LoginPageTest - Test method 'verifyValidLogin' passed
+[INFO ] 2024-06-12 17:08:47.908 [main] LoginPageTest - Test method 'verifyInvalidLogin' passed
+[INFO ] 2024-06-12 17:09:17.346 [main] LoginPageTest - Test method 'verifyPageTitle' passed
+[INFO ] 2024-06-12 17:09:17.506 [main] LoginPageTest - Test method 'verifyPageURL' passed
+[INFO ] 2024-06-12 17:09:23.115 [main] LoginPageTest - Test method 'verifyValidLogin' passed
+[INFO ] 2024-06-12 17:09:24.588 [main] DashboardPageTest - Test method 'verifyDashboardLandingPage' passed
+[INFO ] 2024-06-12 17:12:37.077 [main] LoginPageTest - Test method 'verifyInvalidLogin' passed
+[INFO ] 2024-06-12 17:13:06.326 [main] LoginPageTest - Test method 'verifyPageTitle' passed
+[INFO ] 2024-06-12 17:13:06.485 [main] LoginPageTest - Test method 'verifyPageURL' passed
+[INFO ] 2024-06-12 17:13:15.569 [main] LoginPageTest - Test method 'verifyValidLogin' passed
+[INFO ] 2024-06-12 17:13:16.033 [main] DashboardPageTest - Test method 'verifyDashboardLandingPage' passed
+[INFO ] 2024-06-12 17:13:16.346 [main] AttendancePageTest - Test method 'verifyAttendanceClick' passed
+[INFO ] 2024-06-12 17:35:27.796 [main] LoginPageTest - Test method 'verifyInvalidLogin' passed
+[INFO ] 2024-06-12 17:35:56.097 [main] LoginPageTest - Test method 'verifyPageTitle' passed
+[INFO ] 2024-06-12 17:35:56.283 [main] LoginPageTest - Test method 'verifyPageURL' passed
+[INFO ] 2024-06-12 17:36:02.086 [main] LoginPageTest - Test method 'verifyValidLogin' passed
+[INFO ] 2024-06-12 17:36:02.597 [main] DashboardPageTest - Test method 'verifyDashboardLandingPage' passed
+[INFO ] 2024-06-12 17:36:24.624 [main] AttendancePageTest - Test method 'verifyAttendanceClick' passed
+[INFO ] 2024-06-12 18:16:49.381 [main] LoginPageTest - Test method 'verifyInvalidLogin' passed
+[INFO ] 2024-06-12 18:17:19.466 [main] LoginPageTest - Test method 'verifyPageTitle' passed
+[INFO ] 2024-06-12 18:17:19.627 [main] LoginPageTest - Test method 'verifyPageURL' passed
+[INFO ] 2024-06-12 18:17:25.370 [main] LoginPageTest - Test method 'verifyValidLogin' passed
+[INFO ] 2024-06-12 18:17:25.786 [main] DashboardPageTest - Test method 'verifyDashboardLandingPage' passed
+[INFO ] 2024-06-12 18:17:56.156 [main] AttendancePageTest - Test method 'verifyAttendanceClick' passed
+[INFO ] 2024-06-12 18:22:22.773 [main] LoginPageTest - Test method 'verifyInvalidLogin' passed
+[INFO ] 2024-06-12 18:26:59.749 [main] LoginPageTest - Test method 'verifyInvalidLogin' passed
+[INFO ] 2024-06-12 18:27:29.727 [main] LoginPageTest - Test method 'verifyPageTitle' passed
+[INFO ] 2024-06-12 18:27:29.894 [main] LoginPageTest - Test method 'verifyPageURL' passed
+[INFO ] 2024-06-12 19:02:28.478 [main] LoginPageTest - Test method 'verifyInvalidLogin' passed
+[INFO ] 2024-06-12 19:02:58.315 [main] LoginPageTest - Test method 'verifyPageTitle' passed
+[INFO ] 2024-06-12 19:02:58.466 [main] LoginPageTest - Test method 'verifyPageURL' passed
+[INFO ] 2024-06-12 19:03:04.602 [main] LoginPageTest - Test method 'verifyValidLogin' passed
+[INFO ] 2024-06-12 19:03:05.031 [main] DashboardPageTest - Test method 'verifyDashboardLandingPage' passed
+[INFO ] 2024-06-12 19:03:34.074 [main] AttendancePageTest - Test method 'verifyAttendanceClick' passed
+[INFO ] 2024-06-12 20:34:26.209 [main] LoginPageTest - Test method 'verifyInvalidLogin' passed
+[INFO ] 2024-06-12 20:34:57.289 [main] LoginPageTest - Test method 'verifyPageTitle' passed
+[INFO ] 2024-06-12 20:34:57.440 [main] LoginPageTest - Test method 'verifyPageURL' passed
+[INFO ] 2024-06-12 20:37:35.793 [main] LoginPageTest - Test method 'verifyInvalidLogin' passed
+[INFO ] 2024-06-12 20:38:07.370 [main] LoginPageTest - Test method 'verifyPageTitle' passed
+[INFO ] 2024-06-12 20:38:07.518 [main] LoginPageTest - Test method 'verifyPageURL' passed
+[INFO ] 2024-06-12 20:38:26.363 [main] DashboardPageTest - Test method 'verifyDashboardLandingPage' passed
+[INFO ] 2024-06-12 20:38:53.769 [main] AttendancePageTest - Test method 'verifyAttendanceClick' passed
+[INFO ] 2024-06-12 23:10:19.340 [main] LoginPageTest - Test method 'verifyInvalidLogin' passed
+[INFO ] 2024-06-12 23:10:52.272 [main] LoginPageTest - Test method 'verifyPageTitle' passed
+[INFO ] 2024-06-12 23:10:52.435 [main] LoginPageTest - Test method 'verifyPageURL' passed
+[INFO ] 2024-06-12 23:11:01.470 [main] LoginPageTest - Test method 'verifyValidLogin' passed
+[INFO ] 2024-06-12 23:11:02.657 [main] AttendancePageTest - Test method 'verifyAttendanceClick' passed
+[INFO ] 2024-06-12 23:12:08.928 [main] LoginPageTest - Test method 'verifyInvalidLogin' passed
+[INFO ] 2024-06-12 23:12:40.591 [main] LoginPageTest - Test method 'verifyPageTitle' passed
+[INFO ] 2024-06-12 23:12:40.740 [main] LoginPageTest - Test method 'verifyPageURL' passed

+ 18 - 0
log4j2-sample-2024-06-13.log

@@ -0,0 +1,18 @@
+[INFO ] 2024-06-13 16:04:34.638 [main] LoginPageTest - Test method 'verifyPageURL' passed
+[INFO ] 2024-06-13 16:05:53.426 [main] AttendancePageTest - Test method 'verifyAttendanceClick' passed
+[INFO ] 2024-06-13 16:10:14.824 [main] AttendancePageTest - Test method 'verifyAttendanceClick' passed
+[INFO ] 2024-06-13 16:13:00.644 [main] AttendancePageTest - Test method 'verifyAttendanceClick' passed
+[INFO ] 2024-06-13 16:20:05.839 [main] AttendancePageTest - Test method 'verifyAttendanceClick' passed
+[INFO ] 2024-06-13 16:25:13.215 [main] AttendancePageTest - Test method 'verifyAttendanceCalendarLandingPage' passed
+[INFO ] 2024-06-13 16:25:13.303 [main] AttendancePageTest - Test method 'verifyAttendanceClick' passed
+[INFO ] 2024-06-13 16:27:16.905 [main] AttendancePageTest - Test method 'verifyAttendanceCalendarLandingPage' passed
+[INFO ] 2024-06-13 16:27:17.045 [main] AttendancePageTest - Test method 'verifyAttendanceClick' passed
+[INFO ] 2024-06-13 16:29:34.103 [main] AttendancePageTest - Test method 'verifyApplyAttendanceLandingPage' passed
+[INFO ] 2024-06-13 16:29:39.250 [main] AttendancePageTest - Test method 'verifyAttendanceCalendarLandingPage' passed
+[INFO ] 2024-06-13 16:29:39.352 [main] AttendancePageTest - Test method 'verifyAttendanceClick' passed
+[INFO ] 2024-06-13 17:48:21.444 [main] AttendancePageTest - Test method 'verifyApplyAttendanceLandingPage' passed
+[INFO ] 2024-06-13 17:48:25.943 [main] AttendancePageTest - Test method 'verifyAttendanceCalendarLandingPage' passed
+[INFO ] 2024-06-13 17:48:26.070 [main] AttendancePageTest - Test method 'verifyAttendanceClick' passed
+[INFO ] 2024-06-13 17:49:22.855 [main] AttendancePageTest - Test method 'verifyApplyAttendanceLandingPage' passed
+[INFO ] 2024-06-13 17:49:28.238 [main] AttendancePageTest - Test method 'verifyAttendanceCalendarLandingPage' passed
+[INFO ] 2024-06-13 17:49:28.407 [main] AttendancePageTest - Test method 'verifyAttendanceClick' passed

+ 5 - 0
log4j2-sample-2024-06-18.log

@@ -0,0 +1,5 @@
+[INFO ] 2024-06-18 14:19:55.626 [main] AttendancePageTest - Test method 'verifyMissedInPunchApply' passed
+[INFO ] 2024-06-18 14:21:15.835 [main] AttendancePageTest - Test method 'verifyWorkFromHomeApply' passed
+[INFO ] 2024-06-18 14:22:38.909 [main] AttendancePageTest - Test method 'verifyMissedInPunchApply' passed
+[INFO ] 2024-06-18 14:23:01.531 [main] AttendancePageTest - Test method 'verifyMissedOutPunchApply' passed
+[INFO ] 2024-06-18 14:24:10.133 [main] AttendancePageTest - Test method 'verifyWorkFromHomeApply' passed

+ 37 - 0
log4j2-sample-2024-06-20.log

@@ -0,0 +1,37 @@
+[INFO ] 2024-06-20 15:49:28.209 [main] AttendancePageTest - Test method 'verifyApplyAttendanceLandingPage' passed
+[INFO ] 2024-06-20 15:49:33.262 [main] AttendancePageTest - Test method 'verifyAttendanceCalendarLandingPage' passed
+[INFO ] 2024-06-20 15:49:46.890 [main] AttendancePageTest - Test method 'verifyAttendanceSlideOutMenu' passed
+[INFO ] 2024-06-20 15:50:21.363 [main] AttendancePageTest - Test method 'verifyMissedInPunchApply' passed
+[INFO ] 2024-06-20 15:50:34.149 [main] AttendancePageTest - Test method 'verifyMissedOutPunchApply' passed
+[INFO ] 2024-06-20 15:52:01.791 [main] AttendancePageTest - Test method 'verifyinvalidWorkFromHomeApply' passed
+[INFO ] 2024-06-20 15:54:02.597 [main] AttendancePageTest - Test method 'verifyApplyAttendanceLandingPage' passed
+[INFO ] 2024-06-20 15:54:07.671 [main] AttendancePageTest - Test method 'verifyAttendanceCalendarLandingPage' passed
+[INFO ] 2024-06-20 15:54:22.210 [main] AttendancePageTest - Test method 'verifyAttendanceSlideOutMenu' passed
+[INFO ] 2024-06-20 15:54:59.030 [main] AttendancePageTest - Test method 'verifyMissedInPunchApply' passed
+[INFO ] 2024-06-20 15:55:12.617 [main] AttendancePageTest - Test method 'verifyMissedOutPunchApply' passed
+[INFO ] 2024-06-20 15:56:38.396 [main] AttendancePageTest - Test method 'verifyinvalidWorkFromHomeApply' passed
+[INFO ] 2024-06-20 15:57:51.216 [main] AttendancePageTest - Test method 'verifyApplyAttendanceLandingPage' passed
+[INFO ] 2024-06-20 15:57:56.269 [main] AttendancePageTest - Test method 'verifyAttendanceCalendarLandingPage' passed
+[INFO ] 2024-06-20 15:58:11.196 [main] AttendancePageTest - Test method 'verifyAttendanceSlideOutMenu' passed
+[INFO ] 2024-06-20 15:58:48.416 [main] AttendancePageTest - Test method 'verifyMissedInPunchApply' passed
+[INFO ] 2024-06-20 15:59:06.129 [main] AttendancePageTest - Test method 'verifyMissedOutPunchApply' passed
+[INFO ] 2024-06-20 16:00:34.143 [main] AttendancePageTest - Test method 'verifyinvalidWorkFromHomeApply' passed
+[INFO ] 2024-06-20 16:12:46.037 [main] AttendancePageTest - Test method 'verifyApplyAttendanceLandingPage' passed
+[INFO ] 2024-06-20 16:12:50.925 [main] AttendancePageTest - Test method 'verifyAttendanceCalendarLandingPage' passed
+[INFO ] 2024-06-20 16:13:13.091 [main] AttendancePageTest - Test method 'verifyAttendanceSlideOutMenu' passed
+[INFO ] 2024-06-20 16:13:49.621 [main] AttendancePageTest - Test method 'verifyMissedInPunchApply' passed
+[INFO ] 2024-06-20 16:14:04.038 [main] AttendancePageTest - Test method 'verifyMissedOutPunchApply' passed
+[INFO ] 2024-06-20 16:15:31.415 [main] AttendancePageTest - Test method 'verifyinvalidWorkFromHomeApply' passed
+[INFO ] 2024-06-20 16:20:44.520 [main] AttendancePageTest - Test method 'verifyApplyAttendanceLandingPage' passed
+[INFO ] 2024-06-20 16:20:47.040 [main] AttendancePageTest - Test method 'verifyAttendanceCalendarLandingPage' passed
+[INFO ] 2024-06-20 16:21:03.550 [main] AttendancePageTest - Test method 'verifyAttendanceSlideOutMenu' passed
+[INFO ] 2024-06-20 16:21:39.789 [main] AttendancePageTest - Test method 'verifyMissedInPunchApply' passed
+[INFO ] 2024-06-20 16:21:55.352 [main] AttendancePageTest - Test method 'verifyMissedOutPunchApply' passed
+[INFO ] 2024-06-20 16:23:27.098 [main] AttendancePageTest - Test method 'verifyinvalidWorkFromHomeApply' passed
+[INFO ] 2024-06-20 16:43:55.715 [main] AttendancePageTest - Test method 'verifyApplyAttendanceLandingPage' passed
+[INFO ] 2024-06-20 16:44:01.299 [main] AttendancePageTest - Test method 'verifyAttendanceCalendarLandingPage' passed
+[INFO ] 2024-06-20 16:44:24.532 [main] AttendancePageTest - Test method 'verifyAttendanceSlideOutMenu' passed
+[INFO ] 2024-06-20 16:45:00.601 [main] AttendancePageTest - Test method 'verifyMissedInPunchApply' passed
+[INFO ] 2024-06-20 16:45:14.313 [main] AttendancePageTest - Test method 'verifyMissedOutPunchApply' passed
+[INFO ] 2024-06-20 16:46:05.008 [main] AttendancePageTest - Test method 'verifyWorkFromHomeApply' passed
+[INFO ] 2024-06-20 16:46:33.607 [main] AttendancePageTest - Test method 'verifyinvalidWorkFromHomeApply' passed

+ 7 - 0
log4j2-sample-2024-06-21.log

@@ -0,0 +1,7 @@
+[INFO ] 2024-06-21 19:51:28.414 [main] WorklogPageTest - Test method 'verifyFillWorkLogPageNavigation' passed
+[INFO ] 2024-06-21 19:51:30.828 [main] WorklogPageTest - Test method 'verifyWorkLogReportPageNavigation' passed
+[INFO ] 2024-06-21 19:51:31.915 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-21 20:19:36.404 [main] WorklogPageTest - Test method 'verifyFillWorkLogPageNavigation' passed
+[INFO ] 2024-06-21 20:19:36.437 [main] WorklogPageTest - Test method 'verifyWorkLogMenu' passed
+[INFO ] 2024-06-21 20:19:38.758 [main] WorklogPageTest - Test method 'verifyWorkLogReportPageNavigation' passed
+[INFO ] 2024-06-21 20:19:39.652 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed

+ 15 - 0
log4j2-sample-2024-06-24.log

@@ -0,0 +1,15 @@
+[INFO ] 2024-06-24 23:46:56.180 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-24 23:49:42.755 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-24 23:54:47.697 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-24 23:54:47.758 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-24 23:54:47.767 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-24 23:57:02.867 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-24 23:57:03.070 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-24 23:57:03.088 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-24 23:58:32.288 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-24 23:58:32.500 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-24 23:58:32.517 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-24 23:59:55.156 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-24 23:59:55.175 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-24 23:59:55.366 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-24 23:59:55.378 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed

+ 28 - 0
log4j2-sample-2024-06-25.log

@@ -0,0 +1,28 @@
+[INFO ] 2024-06-25 00:01:30.395 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-25 00:01:31.954 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-25 00:01:31.979 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-25 00:01:32.176 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-25 00:01:32.176 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-25 00:04:55.388 [main] WorklogPageTest - Test method 'verifyFillWorkLogPageNavigation' passed
+[INFO ] 2024-06-25 00:04:55.422 [main] WorklogPageTest - Test method 'verifyWorkLogMenu' passed
+[INFO ] 2024-06-25 00:04:57.241 [main] WorklogPageTest - Test method 'verifyWorkLogReportPageNavigation' passed
+[INFO ] 2024-06-25 00:04:58.184 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-25 00:06:40.390 [main] WorklogPageTest - Test method 'verifyFillWorkLogPageNavigation' passed
+[INFO ] 2024-06-25 00:06:40.390 [main] WorklogPageTest - Test method 'verifyWorkLogMenu' passed
+[INFO ] 2024-06-25 00:06:42.570 [main] WorklogPageTest - Test method 'verifyWorkLogReportPageNavigation' passed
+[INFO ] 2024-06-25 00:06:43.703 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-25 00:07:58.334 [main] WorklogPageTest - Test method 'verifyFillWorkLogPageNavigation' passed
+[INFO ] 2024-06-25 00:07:58.348 [main] WorklogPageTest - Test method 'verifyWorkLogMenu' passed
+[INFO ] 2024-06-25 00:08:00.554 [main] WorklogPageTest - Test method 'verifyWorkLogReportPageNavigation' passed
+[INFO ] 2024-06-25 00:08:01.929 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-25 00:08:01.936 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-25 00:08:41.908 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-25 00:08:47.312 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-25 00:08:47.338 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-25 00:08:47.553 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-25 00:08:47.553 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-25 00:10:11.018 [main] WorklogPageTest - Test method 'verifyFillWorkLogPageNavigation' passed
+[INFO ] 2024-06-25 00:10:11.027 [main] WorklogPageTest - Test method 'verifyWorkLogMenu' passed
+[INFO ] 2024-06-25 00:10:12.805 [main] WorklogPageTest - Test method 'verifyWorkLogReportPageNavigation' passed
+[INFO ] 2024-06-25 00:10:13.392 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-25 00:10:13.407 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed

+ 9 - 0
log4j2-sample-2024-06-26.log

@@ -0,0 +1,9 @@
+[INFO ] 2024-06-26 04:56:54.692 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed
+[INFO ] 2024-06-26 04:58:36.321 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed
+[INFO ] 2024-06-26 05:00:51.609 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed
+[INFO ] 2024-06-26 05:00:56.275 [main] WorklogPageTest - Test method 'verifyFillWorkLogFormTitle' passed
+[INFO ] 2024-06-26 05:01:46.861 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed
+[INFO ] 2024-06-26 05:01:53.077 [main] WorklogPageTest - Test method 'verifyFillWorkLogFormTitle' passed
+[INFO ] 2024-06-26 05:04:24.860 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed
+[INFO ] 2024-06-26 05:07:45.600 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed
+[INFO ] 2024-06-26 05:10:12.554 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed

+ 1 - 0
log4j2-sample-2024-06-27.log

@@ -0,0 +1 @@
+[INFO ] 2024-06-27 19:22:34.037 [main] WorklogPageTest - Test method 'verifySearchWorkLogReport' passed

+ 255 - 0
log4j2/log4j2-test-automation.log

@@ -0,0 +1,255 @@
+[INFO ] 2024-06-28 03:38:58.272 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 03:39:00.410 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 03:39:00.446 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 03:39:00.542 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 03:39:00.557 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 03:43:36.155 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 03:43:38.321 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 03:43:38.345 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 03:43:38.455 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 03:43:38.463 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 03:49:17.952 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 03:49:19.453 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 03:49:19.481 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 03:49:19.598 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 03:49:19.616 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 03:52:30.639 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 03:52:32.150 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 03:52:32.169 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 03:52:32.276 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 03:52:32.291 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 03:54:12.126 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 03:54:13.595 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 03:54:13.623 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 03:54:13.735 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 03:54:13.749 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 03:54:53.557 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 03:54:55.828 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 03:54:55.853 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 03:54:55.958 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 03:54:55.958 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 03:57:56.061 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 03:57:57.573 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 03:57:57.611 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 03:57:57.720 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 03:57:57.720 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 03:59:23.961 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 03:59:25.871 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 03:59:25.899 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 03:59:26.000 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 03:59:26.011 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 04:01:01.766 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 04:01:03.351 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 04:01:03.367 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 04:01:03.429 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 04:01:03.442 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 04:16:04.743 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 04:16:06.103 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 04:16:06.110 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 04:16:06.183 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 04:16:06.200 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 04:17:52.157 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 04:17:53.626 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 04:17:53.657 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 04:17:53.750 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 04:17:53.761 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 04:19:30.803 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 04:19:36.981 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 04:19:37.011 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 04:19:37.126 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 04:19:37.139 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 04:23:25.878 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 04:23:30.699 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 04:23:30.925 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 04:23:31.218 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 04:23:31.218 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 04:28:27.193 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 04:28:32.188 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 04:28:32.444 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 04:28:32.772 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 04:28:32.783 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 04:28:34.560 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed
+[INFO ] 2024-06-28 04:28:57.854 [main] WorklogPageTest - Test method 'verifyFillWorkLogPageNavigation' passed
+[INFO ] 2024-06-28 04:30:03.202 [main] WorklogPageTest - Test method 'verifyWorkLogMenu' passed
+[INFO ] 2024-06-28 04:30:06.035 [main] WorklogPageTest - Test method 'verifyWorkLogReportPageNavigation' passed
+[INFO ] 2024-06-28 04:30:06.823 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 04:30:06.828 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 04:50:08.591 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 04:50:13.305 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 04:50:13.637 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 04:50:14.980 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 04:50:14.995 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 04:50:40.866 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed
+[INFO ] 2024-06-28 04:51:09.691 [main] WorklogPageTest - Test method 'verifyFillWorkLogPageNavigation' passed
+[INFO ] 2024-06-28 04:52:41.579 [main] WorklogPageTest - Test method 'verifySearchWorkLogReport' passed
+[INFO ] 2024-06-28 04:52:41.896 [main] WorklogPageTest - Test method 'verifyWorkLogMenu' passed
+[INFO ] 2024-06-28 04:52:45.886 [main] WorklogPageTest - Test method 'verifyWorkLogReportPageNavigation' passed
+[INFO ] 2024-06-28 04:52:47.103 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 04:52:47.103 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 05:01:25.862 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 05:01:32.764 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 05:01:33.049 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 05:01:35.937 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 05:01:35.952 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 05:01:42.755 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed
+[INFO ] 2024-06-28 05:02:01.224 [main] WorklogPageTest - Test method 'verifyFillWorkLogFormTitle' passed
+[INFO ] 2024-06-28 05:02:08.035 [main] WorklogPageTest - Test method 'verifyFillWorkLogPageNavigation' passed
+[INFO ] 2024-06-28 05:03:53.437 [main] WorklogPageTest - Test method 'verifySearchWorkLogReport' passed
+[INFO ] 2024-06-28 05:03:53.854 [main] WorklogPageTest - Test method 'verifyWorkLogMenu' passed
+[INFO ] 2024-06-28 05:04:00.512 [main] WorklogPageTest - Test method 'verifyWorkLogReportPageNavigation' passed
+[INFO ] 2024-06-28 05:04:03.280 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 05:04:03.280 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 05:09:40.950 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 05:09:47.684 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 05:09:48.012 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 05:09:50.904 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 05:09:50.936 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 05:09:58.070 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed
+[INFO ] 2024-06-28 05:10:16.775 [main] WorklogPageTest - Test method 'verifyFillWorkLogFormTitle' passed
+[INFO ] 2024-06-28 05:10:23.157 [main] WorklogPageTest - Test method 'verifyFillWorkLogPageNavigation' passed
+[INFO ] 2024-06-28 05:12:08.394 [main] WorklogPageTest - Test method 'verifySearchWorkLogReport' passed
+[INFO ] 2024-06-28 05:12:08.638 [main] WorklogPageTest - Test method 'verifyWorkLogMenu' passed
+[INFO ] 2024-06-28 05:12:15.586 [main] WorklogPageTest - Test method 'verifyWorkLogReportPageNavigation' passed
+[INFO ] 2024-06-28 05:12:18.316 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 05:12:18.326 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 05:19:43.729 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 05:19:48.839 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 05:19:49.093 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 05:19:49.604 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 05:19:49.619 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 05:19:51.786 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed
+[INFO ] 2024-06-28 05:20:04.268 [main] WorklogPageTest - Test method 'verifyFillWorkLogFormTitle' passed
+[INFO ] 2024-06-28 05:20:06.619 [main] WorklogPageTest - Test method 'verifyFillWorkLogPageNavigation' passed
+[INFO ] 2024-06-28 05:21:31.520 [main] WorklogPageTest - Test method 'verifySearchWorkLogReport' passed
+[INFO ] 2024-06-28 05:21:31.814 [main] WorklogPageTest - Test method 'verifyWorkLogMenu' passed
+[INFO ] 2024-06-28 05:21:37.521 [main] WorklogPageTest - Test method 'verifyWorkLogReportPageNavigation' passed
+[INFO ] 2024-06-28 05:21:37.956 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 05:21:37.973 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 05:25:23.329 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 05:25:27.616 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 05:25:27.852 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 05:25:28.464 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 05:25:28.465 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 05:25:30.135 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed
+[INFO ] 2024-06-28 05:25:42.204 [main] WorklogPageTest - Test method 'verifyFillWorkLogFormTitle' passed
+[INFO ] 2024-06-28 05:25:43.710 [main] WorklogPageTest - Test method 'verifyFillWorkLogPageNavigation' passed
+[INFO ] 2024-06-28 05:27:09.446 [main] WorklogPageTest - Test method 'verifySearchWorkLogReport' passed
+[INFO ] 2024-06-28 05:27:09.728 [main] WorklogPageTest - Test method 'verifyWorkLogMenu' passed
+[INFO ] 2024-06-28 05:27:13.017 [main] WorklogPageTest - Test method 'verifyWorkLogReportPageNavigation' passed
+[INFO ] 2024-06-28 05:27:13.466 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 05:27:13.483 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 05:33:15.721 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 05:33:20.398 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 05:33:20.629 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 05:33:21.162 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 05:33:21.181 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 05:33:23.459 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed
+[INFO ] 2024-06-28 05:33:36.075 [main] WorklogPageTest - Test method 'verifyFillWorkLogFormTitle' passed
+[INFO ] 2024-06-28 05:33:38.413 [main] WorklogPageTest - Test method 'verifyFillWorkLogPageNavigation' passed
+[INFO ] 2024-06-28 05:35:05.429 [main] WorklogPageTest - Test method 'verifySearchWorkLogReport' passed
+[INFO ] 2024-06-28 05:35:05.702 [main] WorklogPageTest - Test method 'verifyWorkLogMenu' passed
+[INFO ] 2024-06-28 05:35:08.340 [main] WorklogPageTest - Test method 'verifyWorkLogReportPageNavigation' passed
+[INFO ] 2024-06-28 05:35:08.790 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 05:35:08.790 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 05:40:21.459 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 05:40:27.304 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 05:40:27.527 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 05:40:28.129 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 05:40:28.144 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 05:40:30.919 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed
+[INFO ] 2024-06-28 05:40:42.950 [main] WorklogPageTest - Test method 'verifyFillWorkLogFormTitle' passed
+[INFO ] 2024-06-28 05:40:44.425 [main] WorklogPageTest - Test method 'verifyFillWorkLogPageNavigation' passed
+[INFO ] 2024-06-28 05:42:10.271 [main] WorklogPageTest - Test method 'verifySearchWorkLogReport' passed
+[INFO ] 2024-06-28 05:42:10.562 [main] WorklogPageTest - Test method 'verifyWorkLogMenu' passed
+[INFO ] 2024-06-28 05:42:13.897 [main] WorklogPageTest - Test method 'verifyWorkLogReportPageNavigation' passed
+[INFO ] 2024-06-28 05:42:14.326 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 05:42:14.326 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 05:45:35.070 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 05:45:39.248 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 05:45:39.471 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 05:45:40.062 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 05:45:40.073 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 05:45:41.746 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed
+[INFO ] 2024-06-28 05:46:05.215 [main] WorklogPageTest - Test method 'verifyFillWorkLogPageNavigation' passed
+[INFO ] 2024-06-28 05:47:32.285 [main] WorklogPageTest - Test method 'verifySearchWorkLogReport' passed
+[INFO ] 2024-06-28 05:47:32.552 [main] WorklogPageTest - Test method 'verifyWorkLogMenu' passed
+[INFO ] 2024-06-28 05:47:35.816 [main] WorklogPageTest - Test method 'verifyWorkLogReportPageNavigation' passed
+[INFO ] 2024-06-28 05:47:36.301 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 05:47:36.301 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 05:49:23.109 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 05:49:28.534 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 05:49:28.802 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 05:49:29.321 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 05:49:29.336 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 05:49:31.328 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed
+[INFO ] 2024-06-28 05:49:56.017 [main] WorklogPageTest - Test method 'verifyFillWorkLogPageNavigation' passed
+[INFO ] 2024-06-28 05:51:22.158 [main] WorklogPageTest - Test method 'verifySearchWorkLogReport' passed
+[INFO ] 2024-06-28 05:51:22.476 [main] WorklogPageTest - Test method 'verifyWorkLogMenu' passed
+[INFO ] 2024-06-28 05:51:23.001 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 05:51:23.001 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 05:51:25.359 [main] WorklogPageTest - Test method 'verifyWorkLogReportPageNavigation' passed
+[INFO ] 2024-06-28 05:53:24.064 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 05:53:28.719 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 05:53:28.955 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 05:53:29.488 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 05:53:29.507 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 05:53:31.730 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed
+[INFO ] 2024-06-28 05:53:44.120 [main] WorklogPageTest - Test method 'verifyFillWorkLogFormTitle' passed
+[INFO ] 2024-06-28 05:53:46.257 [main] WorklogPageTest - Test method 'verifyFillWorkLogPageNavigation' passed
+[INFO ] 2024-06-28 05:55:13.144 [main] WorklogPageTest - Test method 'verifySearchWorkLogReport' passed
+[INFO ] 2024-06-28 05:55:13.422 [main] WorklogPageTest - Test method 'verifyWorkLogMenu' passed
+[INFO ] 2024-06-28 05:55:13.950 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 05:55:13.955 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 05:55:16.333 [main] WorklogPageTest - Test method 'verifyWorkLogReportPageNavigation' passed
+[INFO ] 2024-06-28 16:11:14.254 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 16:11:22.454 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 16:11:22.767 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 16:11:23.284 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 16:11:23.297 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 16:11:25.566 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed
+[INFO ] 2024-06-28 16:11:38.228 [main] WorklogPageTest - Test method 'verifyFillWorkLogFormTitle' passed
+[INFO ] 2024-06-28 16:11:40.091 [main] WorklogPageTest - Test method 'verifyFillWorkLogPageNavigation' passed
+[INFO ] 2024-06-28 16:13:06.008 [main] WorklogPageTest - Test method 'verifySearchWorkLogReport' passed
+[INFO ] 2024-06-28 16:13:06.280 [main] WorklogPageTest - Test method 'verifyWorkLogMenu' passed
+[INFO ] 2024-06-28 16:13:06.784 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 16:13:06.790 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 16:13:09.128 [main] WorklogPageTest - Test method 'verifyWorkLogReportPageNavigation' passed
+[INFO ] 2024-06-28 16:50:08.499 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 16:50:08.514 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 16:50:23.750 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 16:50:28.869 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 16:50:29.104 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 16:50:34.419 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed
+[INFO ] 2024-06-28 16:50:46.392 [main] WorklogPageTest - Test method 'verifyFillWorkLogFormTitle' passed
+[INFO ] 2024-06-28 16:50:47.747 [main] WorklogPageTest - Test method 'verifyFillWorkLogPageNavigation' passed
+[INFO ] 2024-06-28 16:52:13.720 [main] WorklogPageTest - Test method 'verifySearchWorkLogReport' passed
+[INFO ] 2024-06-28 16:52:14.021 [main] WorklogPageTest - Test method 'verifyWorkLogMenu' passed
+[INFO ] 2024-06-28 16:52:14.543 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 16:52:14.560 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 16:52:17.953 [main] WorklogPageTest - Test method 'verifyWorkLogReportPageNavigation' passed
+[INFO ] 2024-06-28 16:56:44.525 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 16:56:44.547 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 16:56:56.515 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 16:57:02.095 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 16:57:02.387 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 16:57:08.517 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed
+[INFO ] 2024-06-28 16:57:20.977 [main] WorklogPageTest - Test method 'verifyFillWorkLogFormTitle' passed
+[INFO ] 2024-06-28 16:57:23.339 [main] WorklogPageTest - Test method 'verifyFillWorkLogPageNavigation' passed
+[INFO ] 2024-06-28 16:58:49.990 [main] WorklogPageTest - Test method 'verifySearchWorkLogReport' passed
+[INFO ] 2024-06-28 16:58:50.282 [main] WorklogPageTest - Test method 'verifyWorkLogMenu' passed
+[INFO ] 2024-06-28 16:58:50.792 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 16:58:50.792 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 16:58:53.798 [main] WorklogPageTest - Test method 'verifyWorkLogReportPageNavigation' passed
+[INFO ] 2024-06-28 17:11:14.801 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 17:11:14.819 [main] LeavesPageTest - Test method 'verifyLeavesSlideOutMenu' passed
+[INFO ] 2024-06-28 17:11:27.405 [main] LeavesPageTest - Test method 'verifyHolidayCalendarPageNavigation' passed
+[INFO ] 2024-06-28 17:11:32.886 [main] LeavesPageTest - Test method 'verifyLeaveApplicationPageNavigation' passed
+[INFO ] 2024-06-28 17:11:33.224 [main] LeavesPageTest - Test method 'verifyLeavesMenu' passed
+[INFO ] 2024-06-28 17:11:40.132 [main] WorklogPageTest - Test method 'verifyFillWorkLogButton' passed
+[INFO ] 2024-06-28 17:11:52.837 [main] WorklogPageTest - Test method 'verifyFillWorkLogFormTitle' passed
+[INFO ] 2024-06-28 17:11:54.547 [main] WorklogPageTest - Test method 'verifyFillWorkLogPageNavigation' passed
+[INFO ] 2024-06-28 17:13:20.274 [main] WorklogPageTest - Test method 'verifySearchWorkLogReport' passed
+[INFO ] 2024-06-28 17:13:20.631 [main] WorklogPageTest - Test method 'verifyWorkLogMenu' passed
+[INFO ] 2024-06-28 17:13:21.191 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 17:13:21.199 [main] WorklogPageTest - Test method 'verifyWorkLogSlideOutMenu' passed
+[INFO ] 2024-06-28 17:13:24.481 [main] WorklogPageTest - Test method 'verifyWorkLogReportPageNavigation' passed

+ 106 - 0
pom.xml

@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.example</groupId>
+    <artifactId>PlayWright-Demo</artifactId>
+    <version>1.0-SNAPSHOT</version>
+
+
+    <properties>
+        <maven.compiler.source>11</maven.compiler.source>
+        <maven.compiler.target>11</maven.compiler.target>
+        <playwright-version>1.42.0</playwright-version>
+        <testng-version>7.9.0</testng-version>
+
+    </properties>
+
+
+
+    <dependencies>
+
+        <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi</artifactId>
+            <version>5.2.5</version>
+        </dependency>
+
+        <!-- https://mvnrepository.com/artifact/com.aventstack/extentreports -->
+        <dependency>
+            <groupId>com.aventstack</groupId>
+            <artifactId>extentreports</artifactId>
+            <version>5.1.1</version>
+        </dependency>
+
+
+
+        <!-- https://mvnrepository.com/artifact/com.microsoft.playwright/playwright -->
+        <dependency>
+            <groupId>com.microsoft.playwright</groupId>
+            <artifactId>playwright</artifactId>
+            <version>${playwright-version}</version>
+        </dependency>
+
+        <!-- https://mvnrepository.com/artifact/org.testng/testng -->
+        <dependency>
+            <groupId>org.testng</groupId>
+            <artifactId>testng</artifactId>
+            <version>${testng-version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi</artifactId>
+            <version>5.2.5</version>
+        </dependency>
+
+        <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml</artifactId>
+            <version>5.2.4</version>
+        </dependency>
+
+        <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-email -->
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-email</artifactId>
+            <version>1.5</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-api</artifactId>
+            <version>2.21.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-core</artifactId>
+            <version>2.21.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-simple</artifactId>
+            <version>1.7.30</version>
+        </dependency>
+
+        <!-- https://mvnrepository.com/artifact/org.testng/testng -->
+        <dependency>
+            <groupId>org.testng</groupId>
+            <artifactId>testng</artifactId>
+            <version>7.10.2</version>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+
+
+
+
+
+
+
+</project>

+ 27 - 0
src/main/java/com/playwrightdemo/Base/TestBase.java

@@ -0,0 +1,27 @@
+package com.playwrightdemo.Base;
+
+import com.microsoft.playwright.Page;
+import com.playwrightdemo.utils.ConfigReader;
+import com.playwrightdemo.utils.PlayWrightBrowserFactory;
+
+public class TestBase {
+
+    public static Page page;
+
+    public TestBase(){
+
+      //  page= PlayWrightBrowserFactory.init_Browser(ConfigReader.getBrowserProperty(),ConfigReader.getHeadLessAttribute(),ConfigReader.getAppURL());
+
+    }
+
+    public static void intialization(){
+
+        page= PlayWrightBrowserFactory.init_Browser(ConfigReader.getBrowserProperty(),ConfigReader.getHeadLessAttribute(),ConfigReader.getAppURL(),200);
+        page.setDefaultTimeout(15000);
+
+    }
+
+
+
+
+}

+ 133 - 0
src/main/java/com/playwrightdemo/listeners/ExtentReportListeners.java

@@ -0,0 +1,133 @@
+package com.playwrightdemo.listeners;
+
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Calendar;
+import java.util.Date;
+
+import com.playwrightdemo.utils.TestUtils;
+import org.testng.ITestContext;
+import org.testng.ITestListener;
+import org.testng.ITestResult;
+
+import com.aventstack.extentreports.ExtentReports;
+import com.aventstack.extentreports.ExtentTest;
+import com.aventstack.extentreports.MediaEntityBuilder;
+import com.aventstack.extentreports.reporter.ExtentSparkReporter;
+
+public class ExtentReportListeners implements ITestListener {
+
+    private static final String OUTPUT_FOLDER = "Reports";
+    private static final String FILE_NAME = "TestExecutionReport.html";
+
+    private static ExtentReports extent;
+
+    static {
+        try {
+            extent = init();
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    public static ThreadLocal<ExtentTest> test = new ThreadLocal<ExtentTest>();
+    private static ExtentReports extentReports;
+
+
+    private static ExtentReports init() throws IOException {
+
+        Path path = Paths.get(OUTPUT_FOLDER);
+        // if directory exists?
+        if (!Files.exists(path)) {
+            try {
+                Files.createDirectories(path);
+            } catch (IOException e) {
+                // fail to create directory
+                e.printStackTrace();
+            }
+        }
+
+        extentReports = new ExtentReports();
+        ExtentSparkReporter reporter = new ExtentSparkReporter(OUTPUT_FOLDER+"/"+FILE_NAME);
+        reporter.loadXMLConfig("src/test/resources/extent-config.xml");
+        reporter.config().setReportName("Excellence Automation Test Results");
+        extentReports.attachReporter(reporter);
+        extentReports.setSystemInfo("System", "Windows");
+        extentReports.setSystemInfo("Author", "Ankit");
+        extentReports.setSystemInfo("Build#", "1.1");
+        extentReports.setSystemInfo("Team", "QA");
+        extentReports.setSystemInfo("Application Name", "Excellence Demo");
+
+        extentReports.setSystemInfo("ENV NAME", System.getProperty("env"));
+
+        return extentReports;
+    }
+
+    @Override
+    public synchronized void onStart(ITestContext context) {
+        System.out.println("Test Suite started!");
+
+    }
+
+    @Override
+    public synchronized void onFinish(ITestContext context) {
+        System.out.println(("Test Suite is ending!"));
+        extent.flush();
+        test.remove();
+    }
+
+    @Override
+    public synchronized void onTestStart(ITestResult result) {
+        String methodName = result.getMethod().getMethodName();
+        String qualifiedName = result.getMethod().getQualifiedName();
+        int last = qualifiedName.lastIndexOf(".");
+        int mid = qualifiedName.substring(0, last).lastIndexOf(".");
+        String className = qualifiedName.substring(mid + 1, last);
+
+        System.out.println(methodName + " started!");
+        ExtentTest extentTest = extent.createTest(result.getMethod().getMethodName(),
+                result.getMethod().getDescription());
+
+        extentTest.assignCategory(result.getTestContext().getSuite().getName());
+        /*
+         * methodName = StringUtils.capitalize(StringUtils.join(StringUtils.
+         * splitByCharacterTypeCamelCase(methodName), StringUtils.SPACE));
+         */
+        extentTest.assignCategory(className);
+        test.set(extentTest);
+        test.get().getModel().setStartTime(getTime(result.getStartMillis()));
+    }
+
+    public synchronized void onTestSuccess(ITestResult result) {
+        System.out.println((result.getMethod().getMethodName() + " passed!"));
+        test.get().pass("Test passed");
+        test.get().pass(result.getThrowable(), MediaEntityBuilder.createScreenCaptureFromBase64String(TestUtils.getScreenshotOnError(), result.getMethod().getMethodName()).build());
+        test.get().getModel().setEndTime(getTime(result.getEndMillis()));
+    }
+
+    public synchronized void onTestFailure(ITestResult result) {
+        System.out.println((result.getMethod().getMethodName() + " failed!"));
+        test.get().fail(result.getThrowable(), MediaEntityBuilder.createScreenCaptureFromBase64String(TestUtils.getScreenshotOnError(), result.getMethod().getMethodName()).build());
+        test.get().getModel().setEndTime(getTime(result.getEndMillis()));
+    }
+
+    public synchronized void onTestSkipped(ITestResult result) {
+        System.out.println((result.getMethod().getMethodName() + " skipped!"));
+        test.get().skip(result.getThrowable(), MediaEntityBuilder.createScreenCaptureFromBase64String(TestUtils.getScreenshotOnError(), result.getMethod().getMethodName()).build());
+        test.get().getModel().setEndTime(getTime(result.getEndMillis()));
+    }
+
+    public synchronized void onTestFailedButWithinSuccessPercentage(ITestResult result) {
+        System.out.println(("onTestFailedButWithinSuccessPercentage for " + result.getMethod().getMethodName()));
+    }
+
+    private Date getTime(long millis) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTimeInMillis(millis);
+        return calendar.getTime();
+    }
+
+}

+ 317 - 0
src/main/java/com/playwrightdemo/pages/AttendancePage.java

@@ -0,0 +1,317 @@
+package com.playwrightdemo.pages;
+
+import com.microsoft.playwright.Page;
+import com.playwrightdemo.Base.TestBase;
+
+import java.io.IOException;
+import java.util.List;
+
+public class AttendancePage extends BasePage {
+
+
+    String menuAttendance = "li[data-label='attendance']";
+    String txtMenuAttdCal = "a:has-text('Attendance Calendar')";
+    String txtMenuApplyAttd = "a:has-text('Apply Attendance')";
+    String txtHeaderAttendanceCal = "div.card.form_card h5";
+    String txtHeaderApplyAttendance = "div.card.form_card h5";
+
+    String calendar = "input#date_for";
+
+    String tableData = "div.datepicker-days table.table-condensed";
+
+    String dayPicker = "//table[@class='table-condensed']//td[@class='day'] [text()='%s']";
+
+    String reasonDropDown = "select#reason";
+
+    String selectorPunchInTime = "input#punch_in";
+
+    String selectorPunchOutTime = "input#punch_out";
+    String txtboxValidReason = "textarea[name='validreason']";
+
+    String btnAttendanceSubmit = "button#submit-attn";
+
+    String timePickHour = "input.bootstrap-timepicker-hour";
+
+    String timePickMins = "input.bootstrap-timepicker-minute";
+
+    String arrowdownCounter = "a[data-action='decrementHour']";
+
+    String arrowUPCounterHour = "a[data-action='incrementHour']";
+
+    String arrowUPCounterMinute = "a[data-action='incrementMinute']";
+
+
+    String btnNoAtPopup = "div.modal-dialog button.btn.btn-default";
+
+    String btnYesAtPopup = "div.modal-dialog button.btn.btn-primary";
+
+    String txtFormSubmitErrorMessage = "div.alert.alert-danger";
+
+    String attendanceTableData = "table#attendance-table tbody tr";
+
+    String txtAttndnceReqList = "div.card.table_card h5";
+
+    String fromCalendarPicker = "div#fromdate";
+
+    String toCalendarPicker = "div#todate";
+
+    String btnSearch = "button#btnsearch";
+
+    String searchTableData = "table#dataTables-attendence td";
+
+    String attendanceCalendarFromDate = "input#date_frm";
+
+    String attendanceCalendaToDate = "input#date_to";
+
+    String empModeDropdown = "select#employement";
+
+    String employeeDropdown = "select#emp";
+
+    String attendanceCalendarSearchButton = "button#btnsearch";
+
+    String attendanceCalendarTable="table#attendance-table tbody td";
+
+    String txtAvgTimeSpent="div.card.table_card h5";
+
+    String txtFormSubmissionSuccess="div.alert.alert-success";
+
+   String attdListFromcalendar ="div#fromdate";
+
+    String attdListTocalendar ="div#todate";
+
+
+
+    // Page page;
+
+
+    public AttendancePage() throws IOException {
+
+        //this.page=page;
+    }
+
+
+    public void selectAttendanceMenu() {
+
+        doClickSelector(menuAttendance);
+
+    }
+
+    public String getApplyAttendanceMenuName() {
+
+        return getTextFromSelector(txtMenuApplyAttd);
+
+
+    }
+
+
+    public String getAttendanceCalendarMenuName() {
+
+        return getTextFromSelector(txtMenuAttdCal);
+
+
+    }
+
+    public void clickApplyAttendanceLink() {
+
+        doClickSelector(txtMenuApplyAttd);
+
+
+    }
+
+
+    public void clickAttendanceCalLink() {
+
+        doClickSelector(txtMenuAttdCal);
+
+
+    }
+
+    public String getApplyAttendancePageText() {
+
+        return getTextFromSelector(txtHeaderApplyAttendance);
+
+    }
+
+
+    public String getAttendanceCalPageText() {
+
+        return getTextFromSelector(txtHeaderAttendanceCal);
+
+    }
+
+    public void getDataFromCalendar(String dateValue) {
+
+        doClickSelector(calendar);
+        doClickSelector(String.format(dayPicker, dateValue));
+
+
+    }
+
+    public void selectValueFromReasonDropdown(String dropdownValue) {
+
+        selectFromDropdown(reasonDropDown, dropdownValue);
+
+    }
+
+    public void setPunchInTime(int hour, int mins) throws InterruptedException {
+
+        doClickSelector(selectorPunchInTime);
+
+        selectHourTimer(hour, arrowUPCounterHour);
+
+        selectMinuteTimer(mins,arrowUPCounterMinute);
+
+
+
+    }
+
+    public void setPunchOutTime(int hour, int mins) throws InterruptedException {
+
+        doClickSelector(selectorPunchOutTime);
+
+        selectHourTimer(hour, arrowUPCounterHour);
+
+        selectMinuteTimer(mins,arrowUPCounterMinute);
+
+
+    }
+
+    public void enterValidReason(String validReason) {
+
+        doClickSelector(txtboxValidReason);
+
+        fillFields(txtboxValidReason, validReason);
+
+    }
+
+    public void submitAttendanceForm() {
+
+        doClickSelector(btnAttendanceSubmit);
+    }
+
+
+    public void dismissPopup() {
+
+        doClickSelector(btnNoAtPopup);
+
+    }
+
+    public void acceptPopup() {
+
+        doClickSelector(btnYesAtPopup);
+
+    }
+
+
+    public void getAlertText() {
+
+
+    }
+
+    public String getAttendanceListext() {
+
+        return getTextFromSelector(txtAttndnceReqList);
+
+    }
+
+
+    public String getAttendanceFormSubmissionError() {
+
+        return getTextFromSelector(txtFormSubmitErrorMessage);
+
+    }
+
+    public void clickSearchButton() {
+
+        doClickSelector(btnSearch);
+
+
+    }
+
+    public void selectFromDateCalendar() {
+
+        doClickSelector(fromCalendarPicker);
+
+    }
+
+
+    public void selectToDateCalendar() {
+
+        doClickSelector(toCalendarPicker);
+
+
+    }
+
+    public List getResultTableData() {
+
+        return page.locator(searchTableData).allTextContents();
+
+    }
+
+    public void selectEmpDropdown(String empName) {
+
+        selectFromDropdown(employeeDropdown, empName);
+    }
+
+    public void selectEmpModeDropdown(String empMode) {
+
+        selectFromDropdown(empModeDropdown, empMode);
+
+    }
+
+    public void selectfromDateAttndCalendar(String dateValue) {
+
+        doClickSelector(attendanceCalendarFromDate);
+        doClickSelector(String.format(dayPicker, dateValue));
+
+    }
+
+    public void selectToDateAttndCalendar(String dateValue) {
+
+        doClickSelector(attendanceCalendaToDate);
+        doClickSelector(String.format(dayPicker, dateValue));
+    }
+
+
+    public void clickSearchAttendanceCalendar() {
+
+
+    doClickSelector(attendanceCalendarSearchButton);
+}
+
+
+public List getAttendanceCalendarTableData () {
+
+        return page.locator(attendanceCalendarTable).allTextContents();
+
+}
+
+public String getAverageTimeSpent() {
+
+      return getTextFromSelector(txtAvgTimeSpent);
+
+}
+
+public String getAttendanceFormSubmissionSuccess() {
+
+        return getTextFromSelector(txtFormSubmissionSuccess);
+}
+
+
+    public void getDataFromCalendarAttndlist(String dateValue) {
+
+        doClickSelector(attdListFromcalendar);
+        doClickSelector(String.format(dayPicker, dateValue));
+
+
+    }
+
+    public void getDataToCalendarAttndlist(String dateValue) {
+
+        doClickSelector(attdListTocalendar);
+        doClickSelector(String.format(dayPicker, dateValue));
+
+
+    }
+
+}

+ 123 - 0
src/main/java/com/playwrightdemo/pages/BasePage.java

@@ -0,0 +1,123 @@
+package com.playwrightdemo.pages;
+
+import com.microsoft.playwright.Locator;
+import com.microsoft.playwright.Page;
+import com.playwrightdemo.Base.TestBase;
+import com.playwrightdemo.utils.ConfigReader;
+import com.playwrightdemo.utils.PlayWrightBrowserFactory;
+
+import java.io.IOException;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+
+public class BasePage extends TestBase {
+
+
+    BasePage() {
+        super();
+    }
+
+    public void fillFields(String locator, String key) {
+
+        page.fill(locator, key);
+
+    }
+
+
+    public void doClickSelector(String selector) {
+
+        page.click(selector);
+
+    }
+
+    public String getTextFromSelector(String selector) {
+
+        return page.textContent(selector);
+
+    }
+
+    public String getInnerTextFromSelector(String selector) {
+
+        return page.innerText(selector);
+
+    }
+
+
+    public void selectFromDropdown(String selectlocator ,String dropdownValue) {
+
+
+        page.selectOption(selectlocator,dropdownValue);
+
+    }
+
+    public void SelectFromMultiSelectDropdown(String selectlocator ,String[] dropdownValues) {
+
+        page.selectOption(selectlocator,dropdownValues);
+
+    }
+
+
+
+
+
+    public void clearField(String selector){
+
+        page.locator(selector).clear();
+    }
+
+public void jsAlertAccept() {
+
+        page.onDialog(dialog -> { System.out.println("The popup is displaying :"+dialog.message());
+            dialog.accept("Selected Yes over prompt");});
+
+
+}
+
+
+    public void jsAlertDismiss() {
+
+        page.onDialog(dialog -> { System.out.println("The popup is displaying :"+dialog.message());
+            dialog.accept("Selected No over prompt");});
+
+    }
+    public static String selectBeforeDate(long numberOfDaysBefore){
+
+
+       String beforeDate =LocalDate.now().minusDays(numberOfDaysBefore).format(DateTimeFormatter.ofPattern("dd"));
+
+       return beforeDate;
+    }
+    public static String selectAfterDate(long numberOfDaysAfter) {
+
+
+        String afterDate =  LocalDate.now().plusDays(numberOfDaysAfter).format(DateTimeFormatter.ofPattern("dd"));
+
+        return afterDate;
+
+    }
+
+
+public static void selectHourTimer(int hour, String selector) {
+
+    for (int i = 1; i <= hour; i++) {
+
+        page.click(selector);
+
+    }
+
+
+}
+
+    public static void selectMinuteTimer(int minutes ,String selector ) {
+
+        for (int i = 1; i <= minutes/2; i++) {
+
+            page.click(selector);
+
+        }
+
+    }
+
+
+
+}

+ 40 - 0
src/main/java/com/playwrightdemo/pages/DashboardPage.java

@@ -0,0 +1,40 @@
+package com.playwrightdemo.pages;
+
+import com.microsoft.playwright.Page;
+
+import java.io.IOException;
+
+public class DashboardPage extends BasePage{
+
+    String txtAttendance="div.card.emp_top_card.first_card h2";
+    String textDashboardMenu="li[title='Dashboard'] span";
+    //Page page;
+
+
+    public DashboardPage() throws IOException {
+
+        //this.page=page;
+
+    }
+
+
+public String attendanceSelected(){
+
+        return getTextFromSelector(txtAttendance);
+    }
+
+
+
+
+    public AttendancePage fromDashboardPage() throws IOException {
+
+        return new AttendancePage();
+
+    }
+
+
+
+
+
+
+}

+ 214 - 0
src/main/java/com/playwrightdemo/pages/LeavesPage.java

@@ -0,0 +1,214 @@
+package com.playwrightdemo.pages;
+
+import java.time.LocalDate;
+import java.util.List;
+
+public class LeavesPage extends BasePage {
+
+    String txtLeavesMenu = "li[title='Leave Management']";
+    String txtMenuHolidayCalendarLink = "a:has-text('Holiday Calender')";
+    String txtMenuLeaveApplicationLink = "a:has-text('Leave Application')";
+    String txtTitleHolidayCal = "div.card-body h5[class*='red_border']";
+    String txtTitleRestrictedHolidayCal = "div.card-body h5[class*='blue_border']";
+    String txtTitleManageLeaves = "h5:has-text('Manage Leave Applications')";
+    String txtTitleBalanceLeave = "h5:has-text('Balance Leave')";
+    String txtTitleLeaveReqList = "h5:has-text('Leave Request List')";
+
+    String dropdownLeaveType = "select#leave_type";
+    String btnRadioFullDay = "input[type='radio'][id='from_date_fullday']";
+    String btnRadioHalfDay = "input[type='radio'][id='from_date_half']";
+    String getBtnRadioShortLeave = "input[type='radio'][id='from_date_quarter']";
+
+    String txtAreaReasonLeaveForm = "textarea#reason";
+
+    String btnSubmitleaveForm = "button#submit-leave";
+
+    String leaveCalStartDate = "div#planned_start_date";
+    String leaveCalEndDate = "div#planned_end_date";
+
+    String dayPicker = "//table[@class='table-condensed']//td[@class='day'] [text()='%s']";
+
+    String txtRMDiscussionPopupMsg = "div.modal-dialog div.bootstrap-dialog-message";
+    String btnOKRMDiscussion = "div.modal-footer button.btn.btn-primary";
+
+    String btnCancelRMDiscussion = "button.btn.btn-default";
+
+    String txtLeaveApplySucess="div:has-text('Success. You Have Applied For The Leave Successfully! ')";
+
+    String leaveListEndDate="input#dateto";
+    String leaveListStartDate="input#datefrom";
+
+    String btnSearchLeaveReqList="button#btnsearch";
+
+    String dropdownLeaveStatusLeaveReq="select#status_id";
+
+    String  resultsLeaveReqSearchTable="table#dataTables-leave tbody";
+
+    public String getLeaveMenuTxt() {
+
+        return getTextFromSelector(txtLeavesMenu);
+    }
+
+
+    public void selectLeavesMenu() {
+
+        doClickSelector(txtLeavesMenu);
+
+    }
+
+    public String getHolidayCalendarMenuText() {
+
+        return getTextFromSelector(txtMenuHolidayCalendarLink);
+
+    }
+
+    public String getLeaveApplicationMenuText() {
+
+        return getTextFromSelector(txtMenuLeaveApplicationLink);
+    }
+
+    public void clickHolidayCalendarLink() {
+
+        doClickSelector(txtMenuHolidayCalendarLink);
+    }
+
+    public void clickLeaveAppliationLink() {
+
+        doClickSelector(txtMenuLeaveApplicationLink);
+    }
+
+    public String getHolidayCalendarPageText() {
+
+        return getTextFromSelector(txtTitleHolidayCal);
+    }
+
+    public String getRHHolidayCalendarPageText() {
+
+        return getTextFromSelector(txtTitleRestrictedHolidayCal);
+    }
+
+
+    public String getLeaveAplicationPageText() {
+
+        return getTextFromSelector(txtTitleManageLeaves);
+    }
+
+    public void selectLeaveTypeFromDropDown(String leaveType) {
+
+        selectFromDropdown(dropdownLeaveType, leaveType);
+
+    }
+
+    public void selectFullDayLeaveTypeRadioButton() {
+
+        doClickSelector(btnRadioFullDay);
+    }
+
+    public void selectHalfDayLeaveTypeRadioButton() {
+
+        doClickSelector(btnRadioHalfDay);
+
+    }
+
+    public void selectShortLeaveTypeRadioButton() {
+
+        doClickSelector(getBtnRadioShortLeave);
+    }
+
+
+    public void selectleaveFromDate(String startDateValue) {
+
+
+        doClickSelector(leaveCalStartDate);
+        doClickSelector(String.format(dayPicker, startDateValue));
+
+    }
+
+    public void selectleaveToDate(String endDateValue) {
+
+        doClickSelector(leaveCalEndDate);
+        doClickSelector(String.format(dayPicker, endDateValue));
+
+    }
+
+    public void enterReasonLeaveForm(String reasonForLeave) {
+
+        fillFields(txtAreaReasonLeaveForm, reasonForLeave);
+
+    }
+
+    public void clickSubmit() {
+
+        doClickSelector(btnSubmitleaveForm);
+
+    }
+
+    public void getBalanceLeaveSectionTitle() {
+
+        getTextFromSelector(txtTitleBalanceLeave);
+    }
+
+    public String getMessageDiscussionWithRmPopup() {
+
+        return getTextFromSelector(txtRMDiscussionPopupMsg);
+
+
+    }
+
+    public void confirmRMDiscussionPopup() {
+
+        doClickSelector(btnOKRMDiscussion);
+    }
+
+    public void cancelRMDiscussionPopup() {
+
+        doClickSelector(btnCancelRMDiscussion);
+    }
+
+    public String getLeaveApplySuccessMsg() {
+
+        return getTextFromSelector(txtLeaveApplySucess);
+    }
+
+    public void selectFromDateleaveReqList(String startDateValue) {
+
+
+
+        doClickSelector(leaveListStartDate);
+        doClickSelector(String.format(dayPicker, startDateValue));
+
+    }
+
+    public void selectToDateleaveReqList(String endDateValue) {
+
+
+
+        doClickSelector(leaveListEndDate);
+        doClickSelector(String.format(dayPicker, endDateValue));
+
+    }
+
+    public void selectLeaveStatusFromLeaveReqListDropdown (String leaveStatus) {
+        selectFromDropdown(dropdownLeaveStatusLeaveReq,leaveStatus);
+
+
+    }
+
+
+public void searchLeaveReqList() {
+
+        doClickSelector(btnSearchLeaveReqList);
+}
+
+public List<String> getResultLeaveReqSearch() {
+
+    String rowsLocator=resultsLeaveReqSearchTable+" "+"tr";
+    String rowDataLocator=rowsLocator+" "+"td";
+    List<String> rowdata=  page.locator(rowDataLocator).allInnerTexts();
+    return rowdata;
+
+
+}
+
+
+}

+ 109 - 0
src/main/java/com/playwrightdemo/pages/LoginPage.java

@@ -0,0 +1,109 @@
+package com.playwrightdemo.pages;
+
+import com.microsoft.playwright.Page;
+import com.playwrightdemo.utils.ConfigReader;
+
+import java.io.IOException;
+
+public class LoginPage extends BasePage {
+
+
+    private String emailField = "input#email";
+    private String pwdField = "input#password";
+    private String btnLogin = "button.btn.btn-primary.login_btn";
+    private String txtErrorMsg ="span.invalid-feedback strong";
+
+    private String textDashboardMenu="li[title='Dashboard'] span";
+
+    private String textUserName="a#navbarDropdown";
+
+
+
+    public LoginPage( ) throws IOException {
+
+        //super();
+    }
+
+
+
+    public String getPageURL() {
+
+        return page.url();
+    }
+
+    public String getPageTitle() {
+
+        return page.title();
+
+    }
+
+    public void fillEmail() {
+
+        fillFields(emailField,ConfigReader.getAppUserName());
+
+
+    }
+
+    public void fillPassword() {
+
+        fillFields(pwdField,ConfigReader.getAppPassword());
+
+    }
+
+
+    public void fillEmail(String invalidEmail) {
+
+        fillFields(emailField,invalidEmail);
+
+
+    }
+
+
+    public void fillPassword(String invalidPassword) {
+
+        fillFields(pwdField,invalidPassword);
+
+    }
+
+
+    public void clickLoginButton() {
+
+        doClickSelector(btnLogin);
+
+    }
+
+    public String getErrorMessage() {
+
+      return getTextFromSelector(txtErrorMsg);
+    }
+
+    public String getDashboardMenuTextContent(){
+
+        return getTextFromSelector(textDashboardMenu);
+    }
+
+    public String getUserNameDisplayed(){
+
+        return getTextFromSelector(textUserName);
+    }
+
+
+
+
+    public void doLogin(){
+
+        fillEmail();
+        fillPassword();
+        clickLoginButton();
+
+    }
+
+public DashboardPage fromLoginPage() throws IOException {
+
+     return new DashboardPage();
+
+}
+
+
+
+}

+ 230 - 0
src/main/java/com/playwrightdemo/pages/WorklogPage.java

@@ -0,0 +1,230 @@
+package com.playwrightdemo.pages;
+
+import com.microsoft.playwright.options.SelectOption;
+
+import java.util.List;
+
+public class WorklogPage extends BasePage {
+
+    String worklgMenuTxt = "li[title='Worklog'] span";
+
+    String txtFillWorklogMenuLink = "a:has-text('Fill Worklog')";
+    String txtWorklogReportMenuLink = "a:has-text('Worklog Report')";
+
+    String titleTextfillWorklogPage = "div.card.form_card h5";
+
+    String titleTextWorklogReportPage = "div.card.form_card h5";
+
+    String btnFillWorklog = "button#myBtn";
+    String txtTitleFillWorklogForm = "div.add_worklog_txt";
+    String txtWorklogFormDateField = "div.worklog_date_bx input#worklog_date";
+    String dropdownSelectProjWorkLogForm = "select.form-control.selectpicker";
+    String timeSpentPickerWorklogForm = "div#fromdate";
+    String txtAreaTaskDescriptWorklogForm = "div#comments_0 textarea";
+    String btnSaveWorklogForm = "button#save";
+    String btnAddTaskWorklogForm = "a#new-row";
+    String btnDeleteProjWorklogForm = "div.delete_project";
+    String txtSucessWorklogFormSubmission = "div#success-message";
+    String btnDeleteWorklog = "a.delete_cls";
+    String btnOKConfirmationPopup = "div.modal-dialog button.btn.btn-primary";
+    String btnCancelConfirmationPopup = "div.modal-dialog button.btn.btn-default";
+    String txtMessageConfirmationPopup = "div.bootstrap-dialog-message";
+    String txtDeleteWorklogSuccessMessage = "div.alert.alert-success";
+
+
+    String dropDownUnit = "select#unit";
+    String dropDownSupervisor = "select#userid";
+    String dropDownProjects = "select#proid";
+    String dropDownResource = "select#empid";
+    String fromCalendarWorklogReport = "input#startdate";
+
+    String  calendarFromWorklogReport="div#start_date";
+    String calendarToWorklogReport ="div#end_date";
+
+
+
+    String toCalendarWorklogReport = "input#enddate";
+    String btnSearchWorklogReport = "button#btn_search";
+
+    String dayPicker = "//table[@class='table-condensed']//td[@class='day'] [text()='%s']";
+
+    String resultsWorkLogTable="table#users-table tbody";
+
+
+
+
+
+
+    public String getWorklogMenuText() {
+
+        return getTextFromSelector(worklgMenuTxt);
+
+
+    }
+
+    public void selectWorklogMenu() {
+
+        doClickSelector(worklgMenuTxt);
+
+    }
+
+    public String getFillWorklogMenuText() {
+
+        return getTextFromSelector(txtFillWorklogMenuLink);
+
+    }
+
+    public String getWorklogReportMenuText() {
+
+        return getTextFromSelector(txtWorklogReportMenuLink);
+    }
+
+    public void clickFillWorklogLink() {
+
+        doClickSelector(txtFillWorklogMenuLink);
+
+    }
+
+    public void clickWorklogReportLink() {
+
+        doClickSelector(txtWorklogReportMenuLink);
+
+    }
+
+    public String getWorklogPageText() {
+
+
+        return getTextFromSelector(titleTextfillWorklogPage);
+
+    }
+
+    public String getWorklogReportPageText() {
+
+        return getTextFromSelector(titleTextWorklogReportPage);
+
+    }
+
+
+    public String getFillWorklogButtonText() {
+
+        return getTextFromSelector(btnFillWorklog);
+    }
+
+    public void clickFillWorkLogButon() {
+
+        doClickSelector(btnFillWorklog);
+    }
+
+    public String getWorkLogFormTitle() {
+
+        return getTextFromSelector(txtTitleFillWorklogForm);
+    }
+
+    public void selectProjDropdownWorkLogForm() {
+
+        selectFromDropdown(dropdownSelectProjWorkLogForm, "ISHIR / Other Internal Projects");
+    }
+
+    public void enterTimeSpentWorkLogForm() {
+
+        fillFields(timeSpentPickerWorklogForm, "1:15");
+    }
+
+    public void enterTaskDescription() {
+        fillFields(txtAreaTaskDescriptWorklogForm, "This is for testing purpose, dont approve");
+    }
+
+    public void clickSaveButtonWorkLogForm() {
+
+        doClickSelector(btnSaveWorklogForm);
+    }
+
+    public String getWorkLogFormSubmitSuccessMessage() {
+
+        return getTextFromSelector(txtSucessWorklogFormSubmission);
+
+
+    }
+
+    public void deleteWorkogEntry() {
+
+        doClickSelector(btnDeleteWorklog);
+
+    }
+
+    public String getDeleteConfrmationpPopupText() {
+
+        return getTextFromSelector(txtMessageConfirmationPopup);
+    }
+
+    public void confirmDeletePopUp() {
+
+        doClickSelector(btnOKConfirmationPopup);
+    }
+
+    public void cancelDeletePopUp() {
+
+        doClickSelector(btnCancelConfirmationPopup);
+
+    }
+
+    public String getWorklogEntyDeleteSuccessMessage() {
+
+        return getTextFromSelector(txtDeleteWorklogSuccessMessage);
+    }
+
+public void selectUnitDropdown(String [] unitNames){
+
+        SelectFromMultiSelectDropdown(dropDownUnit,unitNames);
+
+}
+
+    public void selectSupervisorDropdown(String[] superVisorNames){
+
+        SelectFromMultiSelectDropdown(dropDownResource,superVisorNames);
+    }
+
+    public void selectProjectsDropdown(String [] projNames){
+
+        SelectFromMultiSelectDropdown(dropDownResource,projNames);
+    }
+
+    public void selectResourcesDropdown(String [] resourceNames){
+
+        SelectFromMultiSelectDropdown(dropDownResource,resourceNames);
+
+    }
+
+
+    public void selectFromDateWorklogReport(String dateValue) {
+
+        doClickSelector(calendarFromWorklogReport);
+        doClickSelector(String.format(dayPicker, dateValue));
+
+    }
+
+    public void selectToDateWorklogReport(String dateValue) {
+
+        doClickSelector(calendarToWorklogReport);
+        doClickSelector(String.format(dayPicker, dateValue));
+    }
+
+
+    public void clickSearchButton(){
+
+        doClickSelector(btnSearchWorklogReport);
+    }
+
+
+public List<String> getWorkLogTableData(){
+
+String rowsLocator=resultsWorkLogTable+" "+"tr";
+String rowDataLocator=rowsLocator+" "+"td";
+List<String> rowdata=  page.locator(rowDataLocator).allInnerTexts();
+return rowdata;
+
+}
+
+
+
+}

BIN
src/main/java/com/playwrightdemo/testdata/ExcelWriterData.xlsx


BIN
src/main/java/com/playwrightdemo/testdata/Excellence Login Data.xlsx


+ 84 - 0
src/main/java/com/playwrightdemo/utils/ConfigReader.java

@@ -0,0 +1,84 @@
+package com.playwrightdemo.utils;
+import com.playwrightdemo.utils.ConfigReader;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.Properties;
+
+public class ConfigReader {
+
+     private static Properties prop;
+    private static final String configFilePath="src/test/resources/config.properties";
+
+
+    static {
+
+        try {
+            initConfigProperties();
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+
+    }
+
+
+    public static void initConfigProperties() throws IOException {
+
+        prop=new Properties();
+        prop.load(new FileInputStream(configFilePath));
+
+    }
+
+    public static String getBrowserProperty(){
+
+        return prop.getProperty("browser");
+
+    }
+
+    public static boolean getHeadLessAttribute(){
+
+        return Boolean.getBoolean(prop.getProperty("headlessAttribute"));
+
+    }
+
+    public static String getAppURL(){
+
+        return prop.getProperty("URL");
+
+    }
+
+    public static String getAppUserName() {
+
+        return prop.getProperty("username");
+    }
+
+
+    public static String getAppPassword() {
+
+        return prop.getProperty("password");
+    }
+
+    public static String getEmailUserName() {
+
+        return prop.getProperty("Email_UserName");
+    }
+
+    public static String getEmailPassword() {
+
+        return prop.getProperty("Email_Password");
+    }
+
+    public static String getHostName(){
+
+        return prop.getProperty("Email_SMTPHostName");
+
+    }
+
+    public static int getPortNumber(){
+
+        return Integer.parseInt(prop.getProperty("Email_PortNumber"));
+    }
+
+
+
+}

+ 90 - 0
src/main/java/com/playwrightdemo/utils/ExcelUtilities.java

@@ -0,0 +1,90 @@
+package com.playwrightdemo.utils;
+
+import org.apache.poi.ss.usermodel.DataFormatter;
+import org.apache.poi.xssf.usermodel.XSSFCell;
+import org.apache.poi.xssf.usermodel.XSSFRow;
+import org.apache.poi.xssf.usermodel.XSSFSheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+
+import java.io.*;
+
+public class ExcelUtilities {
+
+    private static FileInputStream fis;
+
+    private static XSSFWorkbook workBook;
+
+    private static XSSFSheet sheet;
+
+    private static XSSFRow row;
+
+    private static XSSFRow col;
+
+    private static XSSFCell cell;
+
+    private static String excelFilePath = "src/main/java/com/playwrightdemo/testdata/Excellence Login Data.xlsx";
+
+    private static String sheet_name = "userData";
+
+
+    public ExcelUtilities() throws IOException {
+
+        fis = new FileInputStream(new File (excelFilePath));
+        workBook = new XSSFWorkbook(fis);
+        sheet = workBook.getSheet(sheet_name);
+        fis.close();
+
+
+    }
+
+
+    public static String[][] getCellData() {
+
+        int noOfRows = sheet.getPhysicalNumberOfRows();
+        int noOfCols = sheet.getRow(0).getLastCellNum();
+
+        String[][] data = new String[noOfRows - 1][noOfCols];
+
+        for (int i = 1; i <= noOfRows - 1; i++) {
+
+            for (int j = 0; j < noOfCols; j++) {
+
+                DataFormatter df = new DataFormatter();
+                data[i - 1][j] = df.formatCellValue(sheet.getRow(i).getCell(j));
+
+            }
+
+        }
+
+        return data;
+    }
+
+    public void setCellData(String value,int rowNum, int colNum) throws IOException {
+
+        row=sheet.getRow(rowNum);
+        cell=row.getCell(colNum);
+
+        if (cell==null){
+
+            cell=row.createCell(colNum);
+            cell.setCellValue(value);
+
+        }
+
+        else {
+
+            cell.setCellValue(value);
+
+        }
+
+        FileOutputStream fileOut=new FileOutputStream("src/main/java/com/playwrightdemo/testdata/ExcelWriterData.xlsx");
+
+        workBook.write(fileOut);
+
+        fileOut.flush();
+        fileOut.close();
+
+    }
+
+
+}

+ 53 - 0
src/main/java/com/playwrightdemo/utils/LoggerUtils.java

@@ -0,0 +1,53 @@
+package com.playwrightdemo.utils;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+public class LoggerUtils {
+
+    private static final Logger logger = LogManager.getLogger(LoggerUtils.class);
+
+        public static void logTestMethodName(String status) {
+
+            StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
+            String methodName = stackTraceElements[2].getMethodName();
+
+            logger.info("Test method '" + methodName + "' " + status);
+        }
+
+
+
+    public static void logInfo(String message, String methodName, String status ) {
+
+        logger.info("Test method '" + methodName + "' " + status);
+
+    }
+
+    public static void logDebug(String message, String methodName, String status ) {
+
+        logger.debug("Test method '" + methodName + "' " + status);
+
+    }
+
+    public static void logWarning(String message, String methodName, String status ) {
+
+        logger.warn("Test method '" + methodName + "' " + status);
+
+    }
+
+    public static void logError(String message,String methodName, String status, Throwable throwable) {
+
+            String errorMsg=message+"--"+methodName;
+           logger.error(errorMsg, throwable);
+    }
+
+
+    }
+
+
+
+
+
+
+
+

+ 50 - 0
src/main/java/com/playwrightdemo/utils/PlayWrightBrowserFactory.java

@@ -0,0 +1,50 @@
+package com.playwrightdemo.utils;
+
+import com.microsoft.playwright.*;
+
+public class PlayWrightBrowserFactory {
+
+    static Playwright playwright;
+    static Browser browser;
+    static Page page;
+
+    public static Page init_Browser (String browserName,Boolean isHeadLess, String URL,double slowMotion) {
+
+
+        playwright=Playwright.create();
+
+        switch(browserName.toLowerCase()) {
+
+            case "firefox":
+
+                browser  = playwright.firefox().launch(new BrowserType.LaunchOptions().setHeadless(isHeadLess).setSlowMo(slowMotion));
+
+                break;
+
+            case "chromium":
+
+                browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(isHeadLess).setSlowMo(slowMotion));
+
+                break;
+
+            case "webkit":
+                browser = playwright.webkit().launch(new BrowserType.LaunchOptions().setHeadless(isHeadLess).setSlowMo(slowMotion));
+
+                break;
+
+            default:
+
+                System.out.println("No matching browser is found");
+
+        }
+
+        BrowserContext browserContext=  browser.newContext();
+        page= browserContext.newPage();
+        page.navigate(URL);
+        return page;
+    }
+
+
+
+
+}

+ 60 - 0
src/main/java/com/playwrightdemo/utils/TestUtils.java

@@ -0,0 +1,60 @@
+package com.playwrightdemo.utils;
+
+import com.microsoft.playwright.Page;
+import com.playwrightdemo.Base.TestBase;
+import org.apache.commons.mail.DefaultAuthenticator;
+import org.apache.commons.mail.Email;
+import org.apache.commons.mail.EmailException;
+import org.apache.commons.mail.SimpleEmail;
+
+import java.io.File;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.text.SimpleDateFormat;
+import java.util.Base64;
+import java.util.Date;
+
+public class TestUtils extends TestBase {
+
+    private static String screenShotPath = "Screenshot";
+    private static String videoRecordingPath = "src/main/videoRecording";
+
+
+    public static String getScreenshotOnError() {
+
+        String ScreenshotName = "Screenshot_" + new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new Date()) + ".png";
+
+        byte[] buffer = page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get(screenShotPath + "/" + ScreenshotName)).setFullPage(true));
+
+        String base64Path = Base64.getEncoder().encodeToString(buffer);
+
+        return base64Path;
+
+    }
+
+    public static void getVideoOnError() {
+
+        String VideoRecordName = "VideoRecord_" + new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new Date()) + ".webm";
+
+        page.video().saveAs(Paths.get(videoRecordingPath + "/" + VideoRecordName));
+
+
+    }
+
+
+    public static void onErrorEmail() throws EmailException {
+
+        Email email = new SimpleEmail();
+        email.setHostName(ConfigReader.getHostName());
+        email.setSmtpPort(ConfigReader.getPortNumber());
+        email.setAuthenticator(new DefaultAuthenticator(ConfigReader.getEmailUserName(), ConfigReader.getEmailPassword()));
+        email.setSSLOnConnect(true);
+        email.setFrom(ConfigReader.getEmailUserName());
+        email.setSubject("This is test email");
+        email.setMsg("Email Sending Utility");
+        email.addTo("asrivastava@ishir.com");
+        email.send();
+
+    }
+
+}

+ 31 - 0
src/test/java/com/playwright/testrunner/testng.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
+<suite name="Tdd-TestNG-Framework">
+
+    <listeners>
+        <listener class-name="com.playwrightdemo.listeners.ExtentReportListeners"/>
+    </listeners>
+
+
+
+    <test name="LeavesPageTest" preserve-order="true">
+    <classes>
+        <class name="com.playwrightdemo.test.LeavesPageTest">
+
+        </class>
+
+    </classes>
+
+    </test>
+
+    <test name="WorklogPageTest" preserve-order="true">
+        <classes>
+            <class name="com.playwrightdemo.test.WorklogPageTest">
+
+            </class>
+
+        </classes>
+
+    </test>
+
+</suite>

+ 297 - 0
src/test/java/com/playwrightdemo/test/AttendancePageTest.java

@@ -0,0 +1,297 @@
+package com.playwrightdemo.test;
+
+import com.playwrightdemo.pages.AttendancePage;
+import com.playwrightdemo.pages.BasePage;
+import com.playwrightdemo.pages.DashboardPage;
+import com.playwrightdemo.pages.LoginPage;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.testng.Assert;
+import org.testng.annotations.BeforeSuite;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
+
+import java.io.IOException;
+
+public class AttendancePageTest extends BaseTest {
+
+    AttendancePage attendancePage;
+
+    LoginPage loginPage;
+    DashboardPage dashboardPage;
+
+    Logger logger = LogManager.getLogger(this.getClass());
+
+    private void logTestMethodName(String status) {
+        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
+        String methodName = stackTraceElements[2].getMethodName();
+        logger.info("Test method '" + methodName + "' " + status);
+    }
+
+
+    @BeforeSuite
+
+    public void setUP() throws IOException {
+
+        intialization();
+
+        loginPage = new LoginPage();
+        loginPage.doLogin();
+        attendancePage = new AttendancePage();
+
+
+    }
+
+    @Test(enabled = true)
+
+    public void verifyAttendanceSlideOutMenu() throws InterruptedException {
+
+        attendancePage.selectAttendanceMenu();
+
+        Assert.assertTrue(attendancePage.getApplyAttendanceMenuName().contains("Apply Attendance"));
+        Assert.assertTrue(attendancePage.getAttendanceCalendarMenuName().contains("Attendance Calendar"));
+
+        logTestMethodName("passed");
+
+
+    }
+
+    @Test(enabled = true)
+
+
+    public void verifyApplyAttendanceLandingPage() throws InterruptedException {
+
+        attendancePage.selectAttendanceMenu();
+        attendancePage.clickApplyAttendanceLink();
+        Assert.assertEquals(attendancePage.getApplyAttendancePageText().trim(), "Apply Your Attendance");
+        logTestMethodName("passed");
+
+    }
+
+    @Test(enabled = true)
+
+
+    public void verifyAttendanceCalendarLandingPage() throws InterruptedException {
+
+        attendancePage.selectAttendanceMenu();
+        attendancePage.clickAttendanceCalLink();
+        Assert.assertEquals(attendancePage.getAttendanceCalPageText().trim(), "Attendance Calendar");
+        logTestMethodName("passed");
+
+    }
+
+
+    @Test(enabled = true)
+
+    public void verifyWorkFromHomeApply() throws InterruptedException {
+
+
+        attendancePage.selectAttendanceMenu();
+        attendancePage.clickApplyAttendanceLink();
+
+        attendancePage.getDataFromCalendar("19");
+
+        Thread.sleep(5000);
+
+        attendancePage.selectValueFromReasonDropdown("Work From Home");
+
+        attendancePage.setPunchInTime(10, 30);
+
+        attendancePage.setPunchOutTime(20, 30);
+
+        attendancePage.enterValidReason("This is for testing purpose, please don't approve");
+
+        attendancePage.submitAttendanceForm();
+
+        attendancePage.acceptPopup();
+
+        Assert.assertTrue(attendancePage.getAttendanceFormSubmissionSuccess().contains("You Have Applied Successfully"));
+
+        logTestMethodName("passed");
+    }
+
+    @Test(enabled = true)
+
+    public void verifyinvalidWorkFromHomeApply() throws InterruptedException {
+
+
+        attendancePage.selectAttendanceMenu();
+        attendancePage.clickApplyAttendanceLink();
+
+        attendancePage.getDataFromCalendar(BasePage.selectBeforeDate(2));
+
+        Thread.sleep(5000);
+
+        attendancePage.selectValueFromReasonDropdown("Work From Home");
+
+        attendancePage.setPunchInTime(10, 30);
+
+        attendancePage.setPunchOutTime(20, 30);
+
+        attendancePage.enterValidReason("This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence test test test test test test ");
+
+        attendancePage.submitAttendanceForm();
+
+        attendancePage.acceptPopup();
+
+        Assert.assertTrue(attendancePage.getAttendanceFormSubmissionError().contains("Whoops! There were some problems with your input."));
+
+        logTestMethodName("passed");
+    }
+
+
+    @Test(enabled = true)
+
+    public void verifyMissedInPunchApply() throws InterruptedException {
+
+
+        attendancePage.selectAttendanceMenu();
+
+        attendancePage.clickApplyAttendanceLink();
+
+        attendancePage.getDataFromCalendar("16");
+
+        attendancePage.selectValueFromReasonDropdown("Missed In Punch");
+
+        attendancePage.setPunchInTime(11, 30);
+
+        attendancePage.enterValidReason("This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence test test test test test test ");
+
+        attendancePage.submitAttendanceForm();
+
+        attendancePage.acceptPopup();
+
+        Assert.assertTrue(attendancePage.getAttendanceFormSubmissionError().contains("Whoops! There were some problems with your input."));
+
+        logTestMethodName("passed");
+
+    }
+
+    @Test(enabled = true)
+
+    public void verifyMissedOutPunchApply() throws InterruptedException {
+
+
+        attendancePage.selectAttendanceMenu();
+        attendancePage.clickApplyAttendanceLink();
+
+        attendancePage.getDataFromCalendar("17");
+
+        attendancePage.selectValueFromReasonDropdown("Missed Out Punch");
+
+        attendancePage.setPunchOutTime(22, 30);
+
+        attendancePage.enterValidReason("This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence test test test test test test ");
+
+        attendancePage.submitAttendanceForm();
+
+        attendancePage.acceptPopup();
+
+        Assert.assertTrue(attendancePage.getAttendanceFormSubmissionError().contains("Whoops! There were some problems with your input."));
+
+        logTestMethodName("passed");
+
+    }
+
+
+    @Test(enabled = true)
+
+    public void verifyOutForMeetingApply() throws InterruptedException {
+
+
+        attendancePage.selectAttendanceMenu();
+        attendancePage.clickApplyAttendanceLink();
+
+        attendancePage.getDataFromCalendar("17");
+
+        attendancePage.selectValueFromReasonDropdown("Out For Meeting");
+
+        attendancePage.setPunchInTime(12, 30);
+
+        attendancePage.setPunchOutTime(22, 30);
+
+        attendancePage.enterValidReason("This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence test test test test test test ");
+
+        attendancePage.submitAttendanceForm();
+
+        attendancePage.acceptPopup();
+
+        Assert.assertTrue(attendancePage.getAttendanceFormSubmissionError().contains("Whoops! There were some problems with your input."));
+
+
+    }
+
+
+    @Test(enabled = true)
+
+    public void verifyBioMetricIssueApply() throws InterruptedException {
+
+
+        attendancePage.selectAttendanceMenu();
+        attendancePage.clickApplyAttendanceLink();
+
+        attendancePage.getDataFromCalendar("14");
+
+        attendancePage.selectValueFromReasonDropdown("Bio Metric Issue");
+
+        attendancePage.setPunchInTime(12, 30);
+
+        attendancePage.setPunchOutTime(22, 30);
+
+        attendancePage.enterValidReason("This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence This is a test check for excellence test test test test test test ");
+
+        attendancePage.submitAttendanceForm();
+
+        attendancePage.acceptPopup();
+
+        Assert.assertTrue(attendancePage.getAttendanceFormSubmissionError().contains("Whoops! There were some problems with your input."));
+
+
+    }
+
+
+    @Test(enabled = true)
+
+    public void verifyAttendanceListSection() {
+
+        attendancePage.selectAttendanceMenu();
+        attendancePage.clickApplyAttendanceLink();
+
+        Assert.assertEquals(attendancePage.getAttendanceListext(), "Attendance Request List");
+    }
+
+
+    @Test(enabled = true)
+
+    public void verifyAttendanceListSearch() throws InterruptedException {
+
+        attendancePage.selectAttendanceMenu();
+        attendancePage.clickApplyAttendanceLink();
+
+        attendancePage.getDataFromCalendarAttndlist("13");
+        attendancePage.getDataToCalendarAttndlist("13");
+        attendancePage.clickSearchButton();
+
+        Thread.sleep(8000);
+        Assert.assertTrue(attendancePage.getResultTableData().get(0).toString().contains("13"), "Same Date is shown");
+        Assert.assertEquals(attendancePage.getResultTableData().get(3).toString(), "Work tt From Home");
+
+    }
+
+    @Test(enabled = true)
+
+    public void verifyAttendanceCalendarSearch() throws InterruptedException {
+        attendancePage.selectAttendanceMenu();
+        attendancePage.clickAttendanceCalLink();
+
+        attendancePage.selectEmpDropdown("Ankit Srivastava");
+        attendancePage.selectfromDateAttndCalendar("3");
+        attendancePage.selectToDateAttndCalendar("3");
+
+        attendancePage.selectEmpModeDropdown("Employee");
+        attendancePage.clickSearchAttendanceCalendar();
+
+        Assert.assertTrue(attendancePage.getAverageTimeSpent().contains(attendancePage.getAttendanceCalendarTableData().get(6).toString()));
+
+    }
+}

+ 36 - 0
src/test/java/com/playwrightdemo/test/BaseTest.java

@@ -0,0 +1,36 @@
+package com.playwrightdemo.test;
+
+import com.microsoft.playwright.Page;
+import com.playwrightdemo.Base.TestBase;
+import com.playwrightdemo.pages.LoginPage;
+import com.playwrightdemo.utils.ConfigReader;
+import com.playwrightdemo.utils.ExcelUtilities;
+import com.playwrightdemo.utils.PlayWrightBrowserFactory;
+import org.testng.annotations.BeforeSuite;
+import org.testng.annotations.BeforeTest;
+
+import java.io.IOException;
+
+public class BaseTest extends TestBase {
+    ExcelUtilities excelUtilities;
+    BaseTest(){
+
+        super();
+
+    }
+
+    @BeforeSuite
+
+    public void setUP() throws IOException {
+
+
+        intialization();
+
+        excelUtilities = new ExcelUtilities();
+
+
+    }
+
+
+
+    }

+ 63 - 0
src/test/java/com/playwrightdemo/test/DashboardPageTest.java

@@ -0,0 +1,63 @@
+package com.playwrightdemo.test;
+
+import com.playwrightdemo.pages.LoginPage;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.testng.Assert;
+import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeTest;
+
+import java.io.IOException;
+import com.playwrightdemo.pages.DashboardPage;
+import org.testng.annotations.Test;
+
+public class DashboardPageTest extends BaseTest{
+
+    LoginPage loginPage;
+
+    DashboardPage dashboardPage;
+
+
+    DashboardPageTest(){
+
+        super();
+    }
+
+
+
+    Logger logger= LogManager.getLogger(this.getClass());
+
+    private void logTestMethodName(String status) {
+        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
+        String methodName = stackTraceElements[2].getMethodName();
+        logger.info("Test method '" + methodName + "' " + status);
+    }
+
+    @BeforeTest
+
+    public void setUP() throws IOException {
+
+     //   intialization();
+
+       loginPage=new LoginPage();
+       // loginPage.doLogin();
+        dashboardPage=loginPage.fromLoginPage();
+       //  dashboardPage=new DashboardPage();
+
+    }
+
+    @Test (enabled = true)
+
+    public void verifyDashboardLandingPage() throws InterruptedException {
+
+        Assert.assertEquals(dashboardPage.attendanceSelected(),"Attendance / leaves");
+        logTestMethodName("passed");
+
+
+    }
+
+
+
+
+
+}

+ 213 - 0
src/test/java/com/playwrightdemo/test/LeavesPageTest.java

@@ -0,0 +1,213 @@
+package com.playwrightdemo.test;
+
+import com.playwrightdemo.pages.LeavesPage;
+import com.playwrightdemo.pages.LoginPage;
+import com.playwrightdemo.pages.WorklogPage;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.testng.Assert;
+import org.testng.annotations.BeforeSuite;
+import org.testng.annotations.Test;
+
+import java.io.IOException;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.Arrays;
+
+public class LeavesPageTest extends BaseTest{
+
+    LoginPage loginPage;
+
+    LeavesPage leavesPage;
+    Logger logger = LogManager.getLogger(this.getClass());
+
+    private void logTestMethodName(String status) {
+        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
+        String methodName = stackTraceElements[2].getMethodName();
+        logger.info("Test method '" + methodName + "' " + status);
+    }
+
+
+    @BeforeSuite
+
+    public void setUP() throws IOException {
+
+        intialization();
+
+        loginPage = new LoginPage();
+        loginPage.doLogin();
+        leavesPage=new LeavesPage();
+
+    }
+
+    @Test (enabled = true)
+
+    public void verifyLeavesMenu(){
+
+        Assert.assertEquals(leavesPage.getLeaveMenuTxt().trim(),"Leaves");
+        logTestMethodName("passed");
+    }
+
+    @Test  (enabled = true)
+
+    public void verifyLeavesSlideOutMenu(){
+
+
+        leavesPage.selectLeavesMenu();
+        System.out.println(leavesPage.getHolidayCalendarMenuText());
+        Assert.assertTrue(leavesPage.getHolidayCalendarMenuText().contains("Holiday Calender"));
+        logTestMethodName("passed");
+        System.out.println(leavesPage.getLeaveApplicationMenuText());
+        Assert.assertTrue(leavesPage.getLeaveApplicationMenuText().contains("Leave Application"));
+        logTestMethodName("passed");
+    }
+
+    @Test  (enabled = true)
+
+    public void verifyLeaveApplicationPageNavigation(){
+
+        leavesPage.selectLeavesMenu();
+        leavesPage.clickLeaveAppliationLink();
+        Assert.assertEquals(leavesPage.getLeaveAplicationPageText().trim(),"Manage Leave Applications");
+        logTestMethodName("passed");
+
+    }
+
+    @Test  (enabled = true)
+
+    public void verifyHolidayCalendarPageNavigation(){
+
+        leavesPage.selectLeavesMenu();
+        leavesPage.clickHolidayCalendarLink();
+        Assert.assertEquals(leavesPage.getHolidayCalendarPageText().trim(),"Holiday");
+        Assert.assertEquals(leavesPage.getRHHolidayCalendarPageText().trim(),"Restricted Holiday");
+        logTestMethodName("passed");
+
+    }
+
+    @Test (enabled = true)
+
+    public void verifyApplyPL() {
+
+        LocalDate dateToSelect= LocalDate.now().plusDays(17);
+        String formattedDateAfter=dateToSelect.format(DateTimeFormatter.ofPattern("dd"));
+
+        leavesPage.selectLeavesMenu();
+        leavesPage.clickLeaveAppliationLink();
+        leavesPage.selectLeaveTypeFromDropDown("PL");
+        leavesPage.selectFullDayLeaveTypeRadioButton();
+        leavesPage.selectleaveFromDate(formattedDateAfter);
+        leavesPage.selectleaveToDate(formattedDateAfter);
+        leavesPage.enterReasonLeaveForm("This is for testing purpose, Please Reject Accordingly");
+        leavesPage.clickSubmit();
+        Assert.assertEquals(leavesPage.getMessageDiscussionWithRmPopup(),"Have you discussed this leave with your RM?");
+        leavesPage.confirmRMDiscussionPopup();
+        Assert.assertTrue(leavesPage.getLeaveApplySuccessMsg().contains("You Have Applied For The Leave Successfully!"));
+
+
+    }
+
+
+
+    @Test
+
+    public void verifyApplyCL(){
+
+        LocalDate dateToSelect= LocalDate.now().minusDays(2);
+        String formattedDateBefore=dateToSelect.format(DateTimeFormatter.ofPattern("dd"));
+
+        leavesPage.selectLeavesMenu();
+        leavesPage.clickLeaveAppliationLink();
+        leavesPage.selectLeaveTypeFromDropDown("CL");
+        leavesPage.selectFullDayLeaveTypeRadioButton();
+        leavesPage.selectleaveFromDate(formattedDateBefore);
+        leavesPage.selectleaveToDate(formattedDateBefore);
+        leavesPage.enterReasonLeaveForm("This is for testing purpose, Please Reject Accordingly");
+        leavesPage.clickSubmit();
+        Assert.assertEquals(leavesPage.getMessageDiscussionWithRmPopup(),"Have you discussed this leave with your RM?");
+        leavesPage.cancelRMDiscussionPopup();
+
+
+    }
+
+    @Test
+    public void verifyApplyAL(){
+
+        LocalDate dateToSelect= LocalDate.now().plusDays(18);
+        String formattedDateAfter=dateToSelect.format(DateTimeFormatter.ofPattern("dd"));
+
+        leavesPage.selectLeavesMenu();
+        leavesPage.clickLeaveAppliationLink();
+        leavesPage.selectLeaveTypeFromDropDown("AL");
+        leavesPage.selectleaveFromDate(formattedDateAfter);
+        leavesPage.selectleaveToDate(formattedDateAfter);
+        leavesPage.enterReasonLeaveForm("This is for testing purpose, Please Reject Accordingly");
+        leavesPage.clickSubmit();
+        Assert.assertEquals(leavesPage.getMessageDiscussionWithRmPopup(),"Have you discussed this leave with your RM?");
+        leavesPage.cancelRMDiscussionPopup();
+
+    }
+
+    @Test
+    public void verifyApplyRH (){
+
+        LocalDate dateToSelect= LocalDate.now().plusDays(19);
+        String formattedDateAfter=dateToSelect.format(DateTimeFormatter.ofPattern("dd"));
+
+        leavesPage.selectLeavesMenu();
+        leavesPage.clickLeaveAppliationLink();
+        leavesPage.selectLeaveTypeFromDropDown("RH");
+        leavesPage.selectleaveFromDate(formattedDateAfter);
+        leavesPage.selectleaveToDate(formattedDateAfter);
+        leavesPage.enterReasonLeaveForm("This is for testing purpose, Please Reject Accordingly");
+        leavesPage.clickSubmit();
+        Assert.assertEquals(leavesPage.getMessageDiscussionWithRmPopup(),"Have you discussed this leave with your RM?");
+        leavesPage.cancelRMDiscussionPopup();
+
+    }
+
+
+@Test
+
+public void verifyApplyLWP() {
+
+    LocalDate dateToSelect= LocalDate.now().minusDays(1);
+    String formattedDateBefore=dateToSelect.format(DateTimeFormatter.ofPattern("dd"));
+
+    leavesPage.selectLeavesMenu();
+    leavesPage.clickLeaveAppliationLink();
+    leavesPage.selectLeaveTypeFromDropDown("LWP");
+    leavesPage.selectFullDayLeaveTypeRadioButton();
+    leavesPage.selectleaveFromDate(formattedDateBefore);
+    leavesPage.selectleaveToDate(formattedDateBefore);
+    leavesPage.enterReasonLeaveForm("This is for testing purpose, Please Reject Accordingly");
+    leavesPage.clickSubmit();
+    Assert.assertEquals(leavesPage.getMessageDiscussionWithRmPopup(),"Have you discussed this leave with your RM?");
+    leavesPage.cancelRMDiscussionPopup();
+
+}
+
+@Test (enabled = true,dependsOnMethods = {"verifyApplyPL"})
+
+public void verifyLeaveSearch() {
+
+    LocalDate dateToSelect= LocalDate.now().plusDays(17);
+    String formattedDateAfter=dateToSelect.format(DateTimeFormatter.ofPattern("dd"));
+
+    leavesPage.selectLeavesMenu();
+    leavesPage.clickLeaveAppliationLink();
+
+    leavesPage.selectFromDateleaveReqList(formattedDateAfter);
+    leavesPage.selectToDateleaveReqList(formattedDateAfter);
+    leavesPage.selectLeaveStatusFromLeaveReqListDropdown("Pending for Rm Approval");
+    leavesPage.searchLeaveReqList();
+
+    Assert.assertTrue(leavesPage.getResultLeaveReqSearch().containsAll(Arrays.asList("PL","Pending for RM Approval","Jul 15th 2024")));
+
+
+}
+
+
+
+
+}

+ 133 - 0
src/test/java/com/playwrightdemo/test/LoginPageTest.java

@@ -0,0 +1,133 @@
+package com.playwrightdemo.test;
+
+import com.playwrightdemo.pages.LoginPage;
+import com.playwrightdemo.utils.ConfigReader;
+import com.playwrightdemo.utils.ExcelUtilities;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.testng.Assert;
+import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import java.io.IOException;
+
+public class LoginPageTest extends BaseTest{
+
+
+    LoginPage loginPage;
+
+    Logger logger= LogManager.getLogger(this.getClass());
+
+    ExcelUtilities excelUtilities;
+
+    LoginPageTest() {
+
+        super();
+    }
+
+
+
+
+    private void logTestMethodName(String status) {
+        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
+        String methodName = stackTraceElements[2].getMethodName();
+        logger.info("Test method '" + methodName + "' " + status);
+    }
+
+
+    @BeforeTest
+
+    public void setUP() throws IOException {
+
+        loginPage=new LoginPage();
+
+//        intialization();
+
+  //      excelUtilities=new ExcelUtilities();
+
+
+    }
+
+    @DataProvider (name = "ExcellenceLoginData")
+
+public Object[][] multipleLoginDataProvider() {
+
+        Object[][] loginData= ExcelUtilities.getCellData();
+
+        return loginData;
+
+    }
+
+
+
+
+    @Test (enabled = true)
+
+    public void verifyPageURL(){
+
+       // Assert.assertEquals(loginPage.getPageURL(),"https://excellencedemo.ishir.org/login");
+
+        logTestMethodName("passed");
+        //logger.info("This test is passed");
+
+    }
+
+
+    @Test (enabled = true)
+
+    public void verifyPageTitle(){
+
+        Assert.assertEquals(loginPage.getPageTitle(),"Excellence Center");
+
+        logTestMethodName("passed");
+
+        //logger.info("This test is passed");
+
+    }
+
+    @Test (enabled = true)
+
+    public void verifyInvalidLogin(){
+     loginPage.fillEmail("TestUser");
+       loginPage.fillPassword("test123");
+       loginPage.clickLoginButton();
+        Assert.assertEquals( loginPage.getErrorMessage(),"These credentials do not match our records.");
+
+        logTestMethodName("passed");
+
+    }
+
+    @Test (enabled = true)
+
+    public void verifyValidLogin(){
+        loginPage.fillEmail(ConfigReader.getAppUserName());
+        loginPage.fillPassword(ConfigReader.getAppPassword());
+        loginPage.clickLoginButton();
+        Assert.assertEquals( loginPage.getDashboardMenuTextContent(),"Dashboard");
+
+        logTestMethodName("passed");
+
+    }
+
+
+
+    @Test (enabled = true,dataProvider = "ExcellenceLoginData")
+
+    public void verifyMultipleUserLogin(String email,String pwd, String userName){
+
+        loginPage.fillEmail(email);
+        loginPage.fillPassword(pwd);
+        loginPage.clickLoginButton();
+
+       Assert.assertEquals( loginPage.getDashboardMenuTextContent(),"Dashboard");
+       Assert.assertEquals( loginPage.getUserNameDisplayed(), userName);
+
+        logTestMethodName("passed");
+    }
+
+
+
+
+}

+ 181 - 0
src/test/java/com/playwrightdemo/test/WorklogPageTest.java

@@ -0,0 +1,181 @@
+package com.playwrightdemo.test;
+
+import com.playwrightdemo.pages.AttendancePage;
+import com.playwrightdemo.pages.LoginPage;
+import com.playwrightdemo.pages.WorklogPage;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.testng.Assert;
+import org.testng.annotations.BeforeSuite;
+import org.testng.annotations.Test;
+import com.playwrightdemo.pages.LoginPage;
+import java.io.IOException;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+public class WorklogPageTest extends BaseTest {
+
+
+    LoginPage loginPage;
+
+    WorklogPage worklogPage;
+    Logger logger = LogManager.getLogger(this.getClass());
+
+    private void logTestMethodName(String status) {
+        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
+        String methodName = stackTraceElements[2].getMethodName();
+        logger.info("Test method '" + methodName + "' " + status);
+    }
+
+
+    @BeforeSuite
+
+    public void setUP() throws IOException {
+
+       // intialization();
+
+       // loginPage = new LoginPage();
+       // loginPage.doLogin();
+        worklogPage=new WorklogPage();
+
+    }
+
+    @Test(enabled = true)
+
+    public void verifyWorkLogMenu() {
+
+        Assert.assertEquals(worklogPage.getWorklogMenuText(),"Worklog");
+
+        logTestMethodName("passed");
+
+    }
+
+    @Test(enabled = true)
+
+    public void verifyWorkLogSlideOutMenu() {
+        worklogPage.selectWorklogMenu();
+
+        Assert.assertTrue(worklogPage.getFillWorklogMenuText().contains("Fill Worklog"));
+
+        logTestMethodName("passed");
+
+        Assert.assertTrue(worklogPage.getWorklogReportMenuText().contains("Worklog Report"));
+        logTestMethodName("passed");
+
+    }
+
+    @Test(enabled = true)
+
+    public void verifyFillWorkLogPageNavigation() {
+
+        worklogPage.selectWorklogMenu();
+        worklogPage.clickFillWorklogLink();
+        Assert.assertEquals(worklogPage.getWorklogReportPageText(),"Worklog");
+        logTestMethodName("passed");
+    }
+
+
+    @Test(enabled = true)
+
+    public void verifyWorkLogReportPageNavigation() {
+
+        worklogPage.selectWorklogMenu();
+        worklogPage.clickWorklogReportLink();
+        Assert.assertEquals(worklogPage.getWorklogReportPageText(),"Worklog Report");
+        logTestMethodName("passed");
+
+    }
+
+    @Test(enabled = true)
+
+    public void verifyFillWorkLogButton() {
+
+        worklogPage.selectWorklogMenu();
+        worklogPage.clickFillWorklogLink();
+        Assert.assertEquals(worklogPage.getFillWorklogButtonText(),"Fill Worklog");
+        logTestMethodName("passed");
+
+    }
+
+    @Test(enabled = true)
+
+    public void verifyFillWorkLogFormTitle() throws InterruptedException {
+
+        worklogPage.selectWorklogMenu();
+        Thread.sleep(5000);
+        worklogPage.clickFillWorklogLink();
+        worklogPage.clickFillWorkLogButon();
+        Thread.sleep(5000);
+        Assert.assertEquals(worklogPage.getWorkLogFormTitle().trim(),"add your worklog");
+        logTestMethodName("passed");
+
+    }
+
+    @Test(enabled = true, dependsOnMethods ={"verifyFillWorkLogFormTitle"})
+
+    public void verifyFillWorkLogForm() throws InterruptedException {
+
+        worklogPage.selectWorklogMenu();
+        worklogPage.clickFillWorklogLink();
+        worklogPage.clickFillWorkLogButon();
+        worklogPage.selectProjDropdownWorkLogForm();
+        //worklogPage.enterTimeSpentWorkLogForm();
+        worklogPage.enterTaskDescription();
+        worklogPage.clickSaveButtonWorkLogForm();
+        Assert.assertTrue(worklogPage.getWorkLogFormSubmitSuccessMessage().contains("Worklog submitted successfully"));
+
+
+    }
+
+
+    @Test(enabled = true,dependsOnMethods ={"verifyFillWorkLogForm"})
+
+    public void verifyDeleteWorkLog() throws InterruptedException {
+
+        Thread.sleep(5000);
+        worklogPage.selectWorklogMenu();
+        worklogPage.clickFillWorklogLink();
+        worklogPage.deleteWorkogEntry();
+        Assert.assertEquals(worklogPage.getDeleteConfrmationpPopupText(),"Are you sure you want to delete this worklog ?");
+        worklogPage.confirmDeletePopUp();
+        Assert.assertTrue(worklogPage.getWorklogEntyDeleteSuccessMessage().contains("Successfully deleted the worklog!"));
+
+
+    }
+
+
+    @Test(enabled = true)
+
+    public void verifySearchWorkLogReport() throws InterruptedException {
+
+        LocalDate dateToSelect= LocalDate.now().minusDays(2);
+      String formattedDateBefore=dateToSelect.format(DateTimeFormatter.ofPattern("dd"));
+
+        worklogPage.selectWorklogMenu();
+        worklogPage.clickWorklogReportLink();
+        worklogPage.selectUnitDropdown(new String[]{"ISHIR"});
+        // worklogPage.selectSupervisorDropdown();
+        Thread.sleep(20000);
+        worklogPage.selectResourcesDropdown(new String[]{"Nitin Paliwal","Saravanan Namburajan"});
+        Thread.sleep(20000);
+        worklogPage.selectFromDateWorklogReport(formattedDateBefore);
+        worklogPage.selectToDateWorklogReport(formattedDateBefore);
+        worklogPage.clickSearchButton();
+        Thread.sleep(20000);
+
+        Assert.assertTrue(worklogPage.getWorkLogTableData().containsAll(Arrays.asList("Nitin Paliwal","Saravanan Namburajan")));
+
+        Thread.sleep(20000);
+        logTestMethodName("passed");
+
+    }
+
+
+
+
+
+
+
+}

+ 9 - 0
src/test/resources/config.properties

@@ -0,0 +1,9 @@
+browser=chromium
+headlessAttribute=false
+URL=https://excellence.ishir.com/
+username=ankit@eno8.com
+password=@This4now
+Email_UserName = officeinstallation@ishir.com
+Email_Password = Roj88981
+Email_SMTPHostName = smtp-mail.outlook.com
+Email_PortNumber = 587

+ 42 - 0
src/test/resources/extent-config.xml

@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<extentreports>
+    <configuration>
+        <!-- report theme -->
+        <!-- standard, dark -->
+        <theme>dark</theme>
+
+        <!-- document encoding -->
+        <!-- defaults to UTF-8 -->
+        <encoding>UTF-8</encoding>
+
+        <!-- protocol for script and stylesheets -->
+        <!-- defaults to https -->
+        <protocol>https</protocol>
+
+        <!-- title of the document -->
+        <documentTitle>Extent</documentTitle>
+
+        <!-- report name - displayed at top-nav -->
+        <reportName>Automation Report</reportName>
+
+        <!-- location of charts in the test view -->
+        <!-- top, bottom -->
+        <testViewChartLocation>bottom</testViewChartLocation>
+
+        <!-- custom javascript -->
+        <scripts>
+            <![CDATA[
+                $(document).ready(function() {
+
+                });
+            ]]>
+        </scripts>
+
+        <!-- custom styles -->
+        <styles>
+            <![CDATA[
+
+            ]]>
+        </styles>
+    </configuration>
+</extentreports>

+ 20 - 0
src/test/resources/extent.properties

@@ -0,0 +1,20 @@
+extent.reporter.spark.start=true
+extent.reporter.spark.out=htmlReport/automation-report.html
+extent.reporter.spark.config=src/test/resources/extent-config.xml
+basefolder.name=reports/SparkReport
+basefolder.datetimepattern=d-MMM-YY HH-mm-ss
+extent.reporter.spark.vieworder=dashboard,test,exception,author,device,log
+extent.reporter.pdf.start=true
+extent.reporter.pdf.out=PDFReport/ExtendPDF.pdf
+screenshot.dir=/Screenshots/
+screenshot.rel.path=../Screenshots/
+systeminfo.user=admin
+systeminfo.build=v1.01
+systeminfo.AppName=QA-Truvelop
+
+
+
+
+
+
+

+ 40 - 0
src/test/resources/log4j2.properties

@@ -0,0 +1,40 @@
+#Declare loggers
+status=error
+name=Log4j2PropertiesConfig
+appenders=a_console, a_rolling
+rootLogger.level=info
+rootLogger.appenderRefs=ar_console,ar_rolling
+rootLogger.appenderRef.ar_console.ref=StdoutAppender
+rootLogger.appenderRef.ar_rolling.ref=RollingAppender
+#Console Logger
+appender.a_console.type=Console
+appender.a_console.name=StdoutAppender
+appender.a_console.layout.type=PatternLayout
+appender.a_console.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
+#Rolling Logger
+appender.a_rolling.type=RollingFile
+appender.a_rolling.name=RollingAppender
+appender.a_rolling.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
+appender.a_rolling.fileName=log4j2/log4j2-test-automation.log
+appender.a_rolling.filePattern=log4j2-sample-%d{yyyy-MM-dd}.log
+appender.a_rolling.layout.type=PatternLayout
+appender.a_rolling.policies.type=Policies
+appender.a_rolling.policies.time.type=TimeBasedTriggeringPolicy
+appender.a_rolling.policies.time.interval=1
+# To change log file every day
+appender.a_rolling.policies.time.modulate=true
+# To change log file after 10MB size
+appender.a_rolling.policies.size.type=SizeBasedTriggeringPolicy
+appender.a_rolling.policies.size.size=10MB
+appender.a_rolling.strategy.type=DefaultRolloverStrategy
+appender.a_rolling.strategy.max=20
+
+
+
+
+
+
+
+
+
+

BIN
target/classes/com/playwrightdemo/Base/TestBase.class


BIN
target/classes/com/playwrightdemo/listeners/ExtentReportListeners.class


BIN
target/classes/com/playwrightdemo/pages/AttendancePage.class


BIN
target/classes/com/playwrightdemo/pages/BasePage.class


BIN
target/classes/com/playwrightdemo/pages/DashboardPage.class


BIN
target/classes/com/playwrightdemo/pages/LeavesPage.class


BIN
target/classes/com/playwrightdemo/pages/LoginPage.class


BIN
target/classes/com/playwrightdemo/pages/WorklogPage.class


BIN
target/classes/com/playwrightdemo/testdata/ExcelWriterData.xlsx


BIN
target/classes/com/playwrightdemo/testdata/Excellence Login Data.xlsx


BIN
target/classes/com/playwrightdemo/utils/ConfigReader.class


BIN
target/classes/com/playwrightdemo/utils/ExcelUtilities.class


BIN
target/classes/com/playwrightdemo/utils/PlayWrightBrowserFactory.class


BIN
target/classes/com/playwrightdemo/utils/TestUtils.class


+ 10 - 0
target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst

@@ -0,0 +1,10 @@
+com\playwrightdemo\pages\AttendancePage.class
+com\playwrightdemo\Base\TestBase.class
+com\playwrightdemo\utils\ConfigReader.class
+com\playwrightdemo\utils\ExcelUtilities.class
+com\playwrightdemo\utils\TestUtils.class
+com\playwrightdemo\pages\DashboardPage.class
+com\playwrightdemo\utils\PlayWrightBrowserFactory.class
+com\playwrightdemo\pages\LoginPage.class
+com\playwrightdemo\listeners\ExtentReportListeners.class
+com\playwrightdemo\pages\BasePage.class

+ 10 - 0
target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst

@@ -0,0 +1,10 @@
+D:\Learning & POC\Gogs Local Repo\PlayWright-ExcellenceAutomation-Demo\src\main\java\com\playwrightdemo\pages\LoginPage.java
+D:\Learning & POC\Gogs Local Repo\PlayWright-ExcellenceAutomation-Demo\src\main\java\com\playwrightdemo\utils\ConfigReader.java
+D:\Learning & POC\Gogs Local Repo\PlayWright-ExcellenceAutomation-Demo\src\main\java\com\playwrightdemo\pages\AttendancePage.java
+D:\Learning & POC\Gogs Local Repo\PlayWright-ExcellenceAutomation-Demo\src\main\java\com\playwrightdemo\pages\DashboardPage.java
+D:\Learning & POC\Gogs Local Repo\PlayWright-ExcellenceAutomation-Demo\src\main\java\com\playwrightdemo\utils\TestUtils.java
+D:\Learning & POC\Gogs Local Repo\PlayWright-ExcellenceAutomation-Demo\src\main\java\com\playwrightdemo\utils\PlayWrightBrowserFactory.java
+D:\Learning & POC\Gogs Local Repo\PlayWright-ExcellenceAutomation-Demo\src\main\java\com\playwrightdemo\pages\BasePage.java
+D:\Learning & POC\Gogs Local Repo\PlayWright-ExcellenceAutomation-Demo\src\main\java\com\playwrightdemo\utils\ExcelUtilities.java
+D:\Learning & POC\Gogs Local Repo\PlayWright-ExcellenceAutomation-Demo\src\main\java\com\playwrightdemo\Base\TestBase.java
+D:\Learning & POC\Gogs Local Repo\PlayWright-ExcellenceAutomation-Demo\src\main\java\com\playwrightdemo\listeners\ExtentReportListeners.java

+ 4 - 0
target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst

@@ -0,0 +1,4 @@
+com\playwrightdemo\test\AttendancePageTest.class
+com\playwrightdemo\test\DashboardPageTest.class
+com\playwrightdemo\test\LoginPageTest.class
+com\playwrightdemo\test\BaseTest.class

+ 4 - 0
target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst

@@ -0,0 +1,4 @@
+D:\Learning & POC\Gogs Local Repo\PlayWright-ExcellenceAutomation-Demo\src\test\java\com\playwrightdemo\test\LoginPageTest.java
+D:\Learning & POC\Gogs Local Repo\PlayWright-ExcellenceAutomation-Demo\src\test\java\com\playwrightdemo\test\BaseTest.java
+D:\Learning & POC\Gogs Local Repo\PlayWright-ExcellenceAutomation-Demo\src\test\java\com\playwrightdemo\test\DashboardPageTest.java
+D:\Learning & POC\Gogs Local Repo\PlayWright-ExcellenceAutomation-Demo\src\test\java\com\playwrightdemo\test\AttendancePageTest.java

+ 728 - 0
target/surefire-reports/Command line suite/Command line test.html

@@ -0,0 +1,728 @@
+<html>
+<head>
+<title>TestNG:  Command line test</title>
+<link href="../testng.css" rel="stylesheet" type="text/css" />
+<link href="../my-testng.css" rel="stylesheet" type="text/css" />
+
+<style type="text/css">
+.log { display: none;} 
+.stack-trace { display: none;} 
+</style>
+<script type="text/javascript">
+<!--
+function flip(e) {
+  current = e.style.display;
+  if (current == 'block') {
+    e.style.display = 'none';
+    return 0;
+  }
+  else {
+    e.style.display = 'block';
+    return 1;
+  }
+}
+
+function toggleBox(szDivId, elem, msg1, msg2)
+{
+  var res = -1;  if (document.getElementById) {
+    res = flip(document.getElementById(szDivId));
+  }
+  else if (document.all) {
+    // this is the way old msie versions work
+    res = flip(document.all[szDivId]);
+  }
+  if(elem) {
+    if(res == 0) elem.innerHTML = msg1; else elem.innerHTML = msg2;
+  }
+
+}
+
+function toggleAllBoxes() {
+  if (document.getElementsByTagName) {
+    d = document.getElementsByTagName('div');
+    for (i = 0; i < d.length; i++) {
+      if (d[i].className == 'log') {
+        flip(d[i]);
+      }
+    }
+  }
+}
+
+// -->
+</script>
+
+</head>
+<body>
+<h2 align='center'>Command line test</h2><table border='1' align="center">
+<tr>
+<td>Tests passed/Failed/Skipped:</td><td>0/0/4</td>
+</tr><tr>
+<td>Started on:</td><td>Wed Jun 12 22:32:58 IST 2024</td>
+</tr>
+<tr><td>Total time:</td><td>0 seconds (108 ms)</td>
+</tr><tr>
+<td>Included groups:</td><td></td>
+</tr><tr>
+<td>Excluded groups:</td><td></td>
+</tr>
+</table><p/>
+<small><i>(Hover the method name to see the test class name)</i></small><p/>
+<table width='100%' border='1' class='invocation-failed'>
+<tr><td colspan='4' align='center'><b>FAILED CONFIGURATIONS</b></td></tr>
+<tr><td><b>Test method</b></td>
+<td><b>Attribute(s)</b></td>
+<td width="30%"><b>Exception</b></td>
+<td width="10%"><b>Time (seconds)</b></td>
+<td><b>Instance</b></td>
+</tr>
+<tr>
+<td title='com.playwrightdemo.test.BaseTest.setUP()'><b>setUP</b><br>Test class: com.playwrightdemo.test.BaseTest</td>
+<td><div><pre>com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+	at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+	at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+	at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+	at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+	at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+	at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+	at com.microsoft.playwright.Page.navigate(Page.java:5354)
+	at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+	at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+	at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+	at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+	... 41 more
+... Removed 29 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace1311292881", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
+<div class='stack-trace' id='stack-trace1311292881'><pre>com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+	at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+	at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+	at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+	at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+	at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+	at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+	at com.microsoft.playwright.Page.navigate(Page.java:5354)
+	at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+	at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+	at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:71)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:400)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:333)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:358)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:312)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
+	at org.testng.TestNG.runSuites(TestNG.java:1112)
+	at org.testng.TestNG.run(TestNG.java:1079)
+	at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:77)
+	at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:159)
+	at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:99)
+	at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:106)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
+	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
+	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
+	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
+	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+	at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+	... 41 more
+</pre></div></td>
+<td>34</td>
+<td>com.playwrightdemo.test.BaseTest@ed3068a</td></tr>
+</table><p>
+<table width='100%' border='1' class='invocation-skipped'>
+<tr><td colspan='4' align='center'><b>SKIPPED CONFIGURATIONS</b></td></tr>
+<tr><td><b>Test method</b></td>
+<td><b>Attribute(s)</b></td>
+<td width="30%"><b>Exception</b></td>
+<td width="10%"><b>Time (seconds)</b></td>
+<td><b>Instance</b></td>
+</tr>
+<tr>
+<td title='com.playwrightdemo.test.LoginPageTest.setUP()'><b>setUP</b><br>Test class: com.playwrightdemo.test.LoginPageTest</td>
+<td></td>
+<td>0</td>
+<td>com.playwrightdemo.test.LoginPageTest@3fffff43</td></tr>
+<tr>
+<td title='com.playwrightdemo.test.DashboardPageTest.setUP()'><b>setUP</b><br>Test class: com.playwrightdemo.test.DashboardPageTest</td>
+<td></td>
+<td>0</td>
+<td>com.playwrightdemo.test.DashboardPageTest@7c2b6087</td></tr>
+<tr>
+<td title='com.playwrightdemo.test.AttendancePageTest.setUP()'><b>setUP</b><br>Test class: com.playwrightdemo.test.AttendancePageTest</td>
+<td></td>
+<td>0</td>
+<td>com.playwrightdemo.test.AttendancePageTest@531c311e</td></tr>
+</table><p>
+<table width='100%' border='1' class='invocation-skipped'>
+<tr><td colspan='4' align='center'><b>SKIPPED TESTS</b></td></tr>
+<tr><td><b>Test method</b></td>
+<td><b>Attribute(s)</b></td>
+<td width="30%"><b>Exception</b></td>
+<td width="10%"><b>Time (seconds)</b></td>
+<td><b>Instance</b></td>
+</tr>
+<tr>
+<td title='com.playwrightdemo.test.AttendancePageTest.verifyApplyAttendanceLandingPage()'><b>verifyApplyAttendanceLandingPage</b><br>Test class: com.playwrightdemo.test.AttendancePageTest</td>
+<td><div><pre>com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+	at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+	at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+	at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+	at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+	at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+	at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+	at com.microsoft.playwright.Page.navigate(Page.java:5354)
+	at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+	at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+	at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+	at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+	... 41 more
+... Removed 29 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace821342630", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
+<div class='stack-trace' id='stack-trace821342630'><pre>com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+	at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+	at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+	at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+	at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+	at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+	at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+	at com.microsoft.playwright.Page.navigate(Page.java:5354)
+	at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+	at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+	at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:71)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:400)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:333)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:358)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:312)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
+	at org.testng.TestNG.runSuites(TestNG.java:1112)
+	at org.testng.TestNG.run(TestNG.java:1079)
+	at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:77)
+	at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:159)
+	at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:99)
+	at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:106)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
+	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
+	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
+	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
+	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+	at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+	... 41 more
+</pre></div></td>
+<td>0</td>
+<td>com.playwrightdemo.test.AttendancePageTest@531c311e</td></tr>
+<tr>
+<td title='com.playwrightdemo.test.AttendancePageTest.verifyAttendanceCalendarLandingPage()'><b>verifyAttendanceCalendarLandingPage</b><br>Test class: com.playwrightdemo.test.AttendancePageTest</td>
+<td><div><pre>com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+	at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+	at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+	at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+	at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+	at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+	at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+	at com.microsoft.playwright.Page.navigate(Page.java:5354)
+	at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+	at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+	at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+	at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+	... 41 more
+... Removed 29 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace1041326823", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
+<div class='stack-trace' id='stack-trace1041326823'><pre>com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+	at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+	at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+	at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+	at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+	at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+	at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+	at com.microsoft.playwright.Page.navigate(Page.java:5354)
+	at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+	at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+	at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:71)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:400)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:333)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:358)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:312)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
+	at org.testng.TestNG.runSuites(TestNG.java:1112)
+	at org.testng.TestNG.run(TestNG.java:1079)
+	at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:77)
+	at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:159)
+	at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:99)
+	at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:106)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
+	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
+	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
+	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
+	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+	at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+	... 41 more
+</pre></div></td>
+<td>0</td>
+<td>com.playwrightdemo.test.AttendancePageTest@531c311e</td></tr>
+<tr>
+<td title='com.playwrightdemo.test.AttendancePageTest.verifyAttendanceClick()'><b>verifyAttendanceClick</b><br>Test class: com.playwrightdemo.test.AttendancePageTest</td>
+<td><div><pre>com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+	at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+	at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+	at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+	at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+	at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+	at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+	at com.microsoft.playwright.Page.navigate(Page.java:5354)
+	at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+	at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+	at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+	at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+	... 41 more
+... Removed 29 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace2042884127", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
+<div class='stack-trace' id='stack-trace2042884127'><pre>com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+	at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+	at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+	at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+	at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+	at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+	at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+	at com.microsoft.playwright.Page.navigate(Page.java:5354)
+	at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+	at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+	at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:71)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:400)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:333)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:358)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:312)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
+	at org.testng.TestNG.runSuites(TestNG.java:1112)
+	at org.testng.TestNG.run(TestNG.java:1079)
+	at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:77)
+	at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:159)
+	at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:99)
+	at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:106)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
+	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
+	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
+	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
+	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+	at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+	... 41 more
+</pre></div></td>
+<td>0</td>
+<td>com.playwrightdemo.test.AttendancePageTest@531c311e</td></tr>
+<tr>
+<td title='com.playwrightdemo.test.LoginPageTest.verifyValidLogin()'><b>verifyValidLogin</b><br>Test class: com.playwrightdemo.test.LoginPageTest</td>
+<td><div><pre>com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+	at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+	at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+	at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+	at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+	at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+	at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+	at com.microsoft.playwright.Page.navigate(Page.java:5354)
+	at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+	at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+	at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+	at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+	... 41 more
+... Removed 29 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace80191608", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
+<div class='stack-trace' id='stack-trace80191608'><pre>com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+	at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+	at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+	at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+	at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+	at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+	at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+	at com.microsoft.playwright.Page.navigate(Page.java:5354)
+	at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+	at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+	at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:71)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:400)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:333)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:358)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:312)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
+	at org.testng.TestNG.runSuites(TestNG.java:1112)
+	at org.testng.TestNG.run(TestNG.java:1079)
+	at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:77)
+	at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:159)
+	at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:99)
+	at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:106)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
+	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
+	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
+	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
+	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+	at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+	... 41 more
+</pre></div></td>
+<td>0</td>
+<td>com.playwrightdemo.test.LoginPageTest@3fffff43</td></tr>
+</table><p>
+</body>
+</html>

+ 101 - 0
target/surefire-reports/Command line suite/Command line test.xml

@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated by org.testng.reporters.JUnitXMLReporter -->
+<testsuite ignored="5" hostname="ISHLTP117" failures="0" tests="4" name="Command line test" time="0.108" errors="0" timestamp="2024-06-12T22:32:58 IST">
+  <testcase classname="com.playwrightdemo.test.BaseTest" name="@BeforeSuite setUP" time="34.73">
+    <failure type="com.microsoft.playwright.TimeoutError" message="Error {
+  message=&amp;apos;Timeout 30000ms exceeded.
+  name=&amp;apos;TimeoutError
+  stack=&amp;apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &amp;quot;https://excellence.ishir.com/&amp;quot;, waiting until &amp;quot;load&amp;quot;
+">
+      <![CDATA[com.microsoft.playwright.TimeoutError: Error {
+  message='Timeout 30000ms exceeded.
+  name='TimeoutError
+  stack='TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to "https://excellence.ishir.com/", waiting until "load"
+
+at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+at com.microsoft.playwright.Page.navigate(Page.java:5354)
+at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message='Timeout 30000ms exceeded.
+  name='TimeoutError
+  stack='TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to "https://excellence.ishir.com/", waiting until "load"
+
+at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+... 41 more
+... Removed 29 stack frames]]>
+    </failure>
+  </testcase> <!-- @BeforeSuite setUP -->
+  <testcase classname="com.playwrightdemo.test.AttendancePageTest" name="@BeforeTest setUP" time="0.0">
+    <skipped/>
+  </testcase> <!-- @BeforeTest setUP -->
+  <testcase classname="com.playwrightdemo.test.DashboardPageTest" name="@BeforeTest setUP" time="0.0">
+    <skipped/>
+  </testcase> <!-- @BeforeTest setUP -->
+  <testcase classname="com.playwrightdemo.test.LoginPageTest" name="@BeforeTest setUP" time="0.0">
+    <skipped/>
+  </testcase> <!-- @BeforeTest setUP -->
+  <testcase classname="com.playwrightdemo.test.AttendancePageTest" name="verifyApplyAttendanceLandingPage" time="0.0">
+    <skipped/>
+  </testcase> <!-- verifyApplyAttendanceLandingPage -->
+  <testcase classname="com.playwrightdemo.test.AttendancePageTest" name="verifyAttendanceCalendarLandingPage" time="0.0">
+    <skipped/>
+  </testcase> <!-- verifyAttendanceCalendarLandingPage -->
+  <testcase classname="com.playwrightdemo.test.AttendancePageTest" name="verifyAttendanceClick" time="0.0">
+    <skipped/>
+  </testcase> <!-- verifyAttendanceClick -->
+  <testcase classname="com.playwrightdemo.test.LoginPageTest" name="verifyValidLogin" time="0.0">
+    <skipped/>
+  </testcase> <!-- verifyValidLogin -->
+  <testcase classname="com.playwrightdemo.test.DashboardPageTest" name="verifyDashboardLandingPage" time="0.0">
+    <ignored/>
+  </testcase> <!-- verifyDashboardLandingPage -->
+  <testcase classname="com.playwrightdemo.test.LoginPageTest" name="verifyInvalidLogin" time="0.0">
+    <ignored/>
+  </testcase> <!-- verifyInvalidLogin -->
+  <testcase classname="com.playwrightdemo.test.LoginPageTest" name="verifyPageURL" time="0.0">
+    <ignored/>
+  </testcase> <!-- verifyPageURL -->
+  <testcase classname="com.playwrightdemo.test.LoginPageTest" name="verifyPageTitle" time="0.0">
+    <ignored/>
+  </testcase> <!-- verifyPageTitle -->
+  <testcase classname="com.playwrightdemo.test.LoginPageTest" name="verifyMultipleUserLogin" time="0.0">
+    <ignored/>
+  </testcase> <!-- verifyMultipleUserLogin -->
+</testsuite> <!-- Command line test -->

+ 32 - 0
target/surefire-reports/Command line suite/testng-failed.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
+<suite name="Failed suite [Command line suite]" verbose="0">
+  <test thread-count="5" name="Command line test(failed)" verbose="0">
+    <classes>
+      <class name="com.playwrightdemo.test.DashboardPageTest">
+        <methods>
+          <include name="setUP"/>
+        </methods>
+      </class> <!-- com.playwrightdemo.test.DashboardPageTest -->
+      <class name="com.playwrightdemo.test.AttendancePageTest">
+        <methods>
+          <include name="setUP"/>
+          <include name="verifyAttendanceCalendarLandingPage"/>
+          <include name="verifyApplyAttendanceLandingPage"/>
+          <include name="verifyAttendanceClick"/>
+        </methods>
+      </class> <!-- com.playwrightdemo.test.AttendancePageTest -->
+      <class name="com.playwrightdemo.test.LoginPageTest">
+        <methods>
+          <include name="setUP"/>
+          <include name="verifyValidLogin"/>
+        </methods>
+      </class> <!-- com.playwrightdemo.test.LoginPageTest -->
+      <class name="com.playwrightdemo.test.BaseTest">
+        <methods>
+          <include name="setUP"/>
+        </methods>
+      </class> <!-- com.playwrightdemo.test.BaseTest -->
+    </classes>
+  </test> <!-- Command line test(failed) -->
+</suite> <!-- Failed suite [Command line suite] -->

+ 150 - 0
target/surefire-reports/TEST-TestSuite.xml

@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<testsuite tests="8" failures="1" name="TestSuite" time="143.301" errors="0" skipped="7">
+  <properties>
+    <property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/>
+    <property name="java.vm.version" value="11.0.15+8-LTS-149"/>
+    <property name="sun.boot.library.path" value="C:\Program Files\Java\jdk-11.0.15\bin"/>
+    <property name="maven.multiModuleProjectDirectory" value="D:\Learning &amp; POC\Gogs Local Repo\PlayWright-ExcellenceAutomation-Demo"/>
+    <property name="java.vm.vendor" value="Oracle Corporation"/>
+    <property name="java.vendor.url" value="https://openjdk.java.net/"/>
+    <property name="guice.disable.misplaced.annotation.check" value="true"/>
+    <property name="path.separator" value=";"/>
+    <property name="java.vm.name" value="Java HotSpot(TM) 64-Bit Server VM"/>
+    <property name="sun.os.patch.level" value=""/>
+    <property name="user.script" value=""/>
+    <property name="user.country" value="US"/>
+    <property name="sun.java.launcher" value="SUN_STANDARD"/>
+    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
+    <property name="user.dir" value="D:\Learning &amp; POC\Gogs Local Repo\PlayWright-ExcellenceAutomation-Demo"/>
+    <property name="java.vm.compressedOopsMode" value="Zero based"/>
+    <property name="java.runtime.version" value="11.0.15+8-LTS-149"/>
+    <property name="java.awt.graphicsenv" value="sun.awt.Win32GraphicsEnvironment"/>
+    <property name="os.arch" value="amd64"/>
+    <property name="java.io.tmpdir" value="C:\Users\admin\AppData\Local\Temp\"/>
+    <property name="line.separator" value="
+"/>
+    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
+    <property name="user.variant" value=""/>
+    <property name="os.name" value="Windows 10"/>
+    <property name="classworlds.conf" value="C:\Program Files\apache-maven-3.8.6\bin\m2.conf"/>
+    <property name="sun.jnu.encoding" value="Cp1252"/>
+    <property name="java.library.path" value="C:\Program Files\Java\jdk-11.0.15\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Java\jdk-11.0.15\bin;C:\Users\admin\AppData\Local\Android\Sdk\cmdline-tools\latest\bin;C:\Users\admin\AppData\Local\Android\Sdk\tools\bin;C:\Users\admin\AppData\Local\Android\Sdk\platform-tools;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\nodejs\;C:\Program Files\Git\cmd;C:\Program Files\dotnet\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\apache-maven-3.8.6\bin;D:\Setups\New folder\allure-commandline-2.21.0\allure-2.21.0\bin;C:\Program Files\MySQL\MySQL Server 8.0\bin;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\src\flutter\bin;C:\Program Files\Java\jdk-11.0.15\bin;C:\Users\admin\AppData\Local\Microsoft\WindowsApps;C:\Users\admin\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\admin\AppData\Roaming\npm;C:\Users\admin\AppData\Local\Programs\Fiddler;C:\Program Files\OpenSSL-Win64\bin;C:\Program Files\JetBrains\PyCharm Community Edition 2021.3.3\bin;;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2022.1.3\bin;;C:\src\flutter\bin;;."/>
+    <property name="maven.conf" value="C:\Program Files\apache-maven-3.8.6/conf"/>
+    <property name="jdk.debug" value="release"/>
+    <property name="java.class.version" value="55.0"/>
+    <property name="java.specification.name" value="Java Platform API Specification"/>
+    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
+    <property name="os.version" value="10.0"/>
+    <property name="library.jansi.path" value="C:\Program Files\apache-maven-3.8.6\lib\jansi-native"/>
+    <property name="user.home" value="C:\Users\admin"/>
+    <property name="user.timezone" value="Asia/Calcutta"/>
+    <property name="java.awt.printerjob" value="sun.awt.windows.WPrinterJob"/>
+    <property name="file.encoding" value="Cp1252"/>
+    <property name="java.specification.version" value="11"/>
+    <property name="user.name" value="AnkitSrivastava"/>
+    <property name="java.class.path" value="C:\Program Files\apache-maven-3.8.6\boot\plexus-classworlds-2.6.0.jar"/>
+    <property name="java.vm.specification.version" value="11"/>
+    <property name="sun.arch.data.model" value="64"/>
+    <property name="sun.java.command" value="org.codehaus.plexus.classworlds.launcher.Launcher clean install"/>
+    <property name="java.home" value="C:\Program Files\Java\jdk-11.0.15"/>
+    <property name="user.language" value="en"/>
+    <property name="java.specification.vendor" value="Oracle Corporation"/>
+    <property name="awt.toolkit" value="sun.awt.windows.WToolkit"/>
+    <property name="java.vm.info" value="mixed mode"/>
+    <property name="java.version" value="11.0.15"/>
+    <property name="java.vendor" value="Oracle Corporation"/>
+    <property name="sun.stderr.encoding" value="cp437"/>
+    <property name="maven.home" value="C:\Program Files\apache-maven-3.8.6"/>
+    <property name="file.separator" value="\"/>
+    <property name="java.version.date" value="2022-04-19"/>
+    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
+    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
+    <property name="sun.cpu.endian" value="little"/>
+    <property name="java.vendor.version" value="18.9"/>
+    <property name="sun.stdout.encoding" value="cp437"/>
+    <property name="sun.desktop" value="windows"/>
+    <property name="sun.cpu.isalist" value="amd64"/>
+  </properties>
+  <testcase classname="com.playwrightdemo.test.BaseTest" name="setUP" time="35.814">
+    <failure message="Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+" type="com.microsoft.playwright.TimeoutError">com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+	at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+	at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+	at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+	at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+	at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+	at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+	at com.microsoft.playwright.Page.navigate(Page.java:5354)
+	at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+	at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+	at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+	at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+	... 41 more
+</failure>
+    <system-out>Configuring TestNG with: org.apache.maven.surefire.testng.conf.TestNG652Configurator@371a67ec
+</system-out>
+  </testcase>
+  <testcase classname="com.playwrightdemo.test.AttendancePageTest" name="setUP" time="35.828">
+    <skipped/>
+  </testcase>
+  <testcase classname="com.playwrightdemo.test.DashboardPageTest" name="setUP" time="35.829">
+    <skipped/>
+  </testcase>
+  <testcase classname="com.playwrightdemo.test.LoginPageTest" name="setUP" time="35.829">
+    <skipped/>
+  </testcase>
+  <testcase classname="com.playwrightdemo.test.AttendancePageTest" name="verifyApplyAttendanceLandingPage" time="0.001">
+    <skipped/>
+  </testcase>
+  <testcase classname="com.playwrightdemo.test.AttendancePageTest" name="verifyAttendanceCalendarLandingPage" time="0">
+    <skipped/>
+  </testcase>
+  <testcase classname="com.playwrightdemo.test.AttendancePageTest" name="verifyAttendanceClick" time="0">
+    <skipped/>
+  </testcase>
+  <testcase classname="com.playwrightdemo.test.LoginPageTest" name="verifyValidLogin" time="0">
+    <skipped/>
+  </testcase>
+</testsuite>

+ 50 - 0
target/surefire-reports/TestSuite.txt

@@ -0,0 +1,50 @@
+-------------------------------------------------------------------------------
+Test set: TestSuite
+-------------------------------------------------------------------------------
+Tests run: 8, Failures: 1, Errors: 0, Skipped: 7, Time elapsed: 36.133 sec <<< FAILURE!
+setUP(com.playwrightdemo.test.BaseTest)  Time elapsed: 35.814 sec  <<< FAILURE!
+com.microsoft.playwright.TimeoutError: Error {
+  message='Timeout 30000ms exceeded.
+  name='TimeoutError
+  stack='TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to "https://excellence.ishir.com/", waiting until "load"
+
+	at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+	at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+	at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+	at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+	at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+	at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+	at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+	at com.microsoft.playwright.Page.navigate(Page.java:5354)
+	at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+	at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+	at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message='Timeout 30000ms exceeded.
+  name='TimeoutError
+  stack='TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to "https://excellence.ishir.com/", waiting until "load"
+
+	at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+	at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+	... 41 more
+

BIN
target/surefire-reports/bullet_point.png


BIN
target/surefire-reports/collapseall.gif


+ 245 - 0
target/surefire-reports/emailable-report.html

@@ -0,0 +1,245 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "https://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="https://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
+<title>TestNG Report</title>
+<style type="text/css">table {margin-bottom:10px;border-collapse:collapse;empty-cells:show}th,td {border:1px solid #009;padding:.25em .5em}th {vertical-align:bottom}td {vertical-align:top}table a {font-weight:bold}.stripe td {background-color: #E6EBF9}.num {text-align:right}.passedodd td {background-color: #3F3}.passedeven td {background-color: #0A0}.skippedodd td {background-color: #DDD}.skippedeven td {background-color: #CCC}.failedodd td,.attn {background-color: #F33}.failedeven td,.stripe .attn {background-color: #D00}.stacktrace {white-space:pre;font-family:monospace}.totop {font-size:85%;text-align:center;border-bottom:2px solid #000}.invisible {display:none}</style>
+</head>
+<body>
+<table>
+<tr><th>Test</th><th># Passed</th><th># Skipped</th><th># Retried</th><th># Failed</th><th>Time (ms)</th><th>Included Groups</th><th>Excluded Groups</th></tr>
+<tr><th colspan="8">Command line suite</th></tr>
+<tr><td><a href="#t0">Command line test</a></td><td class="num">0</td><td class="num attn">4</td><td class="num">0</td><td class="num">0</td><td class="num">108</td><td></td><td></td></tr>
+</table>
+<table id='summary'><thead><tr><th>Class</th><th>Method</th><th>Start</th><th>Time (ms)</th></tr></thead><tbody><tr><th colspan="4">Command line suite</th></tr></tbody><tbody id="t0"><tr><th colspan="4">Command line test &#8212; failed (configuration methods)</th></tr><tr class="failedeven"><td rowspan="1">com.playwrightdemo.test.BaseTest</td><td><a href="#m0">setUP</a></td><td rowspan="1">1718211743829</td><td rowspan="1">34730</td></tr><tr><th colspan="4">Command line test &#8212; skipped (configuration methods)</th></tr><tr class="skippedeven"><td rowspan="1">com.playwrightdemo.test.AttendancePageTest</td><td><a href="#m1">setUP</a></td><td rowspan="1">1718211778598</td><td rowspan="1">0</td></tr><tr class="skippedodd"><td rowspan="1">com.playwrightdemo.test.DashboardPageTest</td><td><a href="#m2">setUP</a></td><td rowspan="1">1718211778602</td><td rowspan="1">0</td></tr><tr class="skippedeven"><td rowspan="1">com.playwrightdemo.test.LoginPageTest</td><td><a href="#m3">setUP</a></td><td rowspan="1">1718211778603</td><td rowspan="1">0</td></tr><tr><th colspan="4">Command line test &#8212; skipped</th></tr><tr class="skippedeven"><td rowspan="3">com.playwrightdemo.test.AttendancePageTest</td><td><a href="#m4">verifyApplyAttendanceLandingPage</a></td><td rowspan="1">1718211778676</td><td rowspan="1">0</td></tr><tr class="skippedeven"><td><a href="#m5">verifyAttendanceCalendarLandingPage</a></td><td rowspan="1">1718211778680</td><td rowspan="1">0</td></tr><tr class="skippedeven"><td><a href="#m6">verifyAttendanceClick</a></td><td rowspan="1">1718211778681</td><td rowspan="1">0</td></tr><tr class="skippedodd"><td rowspan="1">com.playwrightdemo.test.LoginPageTest</td><td><a href="#m7">verifyValidLogin</a></td><td rowspan="1">1718211778684</td><td rowspan="1">0</td></tr></tbody>
+</table>
+<h2>Command line test</h2><h3 id="m0">com.playwrightdemo.test.BaseTest#setUP</h3><table class="result"><tr><th>Exception</th></tr><tr><td><div class="stacktrace">com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+	at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+	at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+	at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+	at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+	at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+	at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+	at com.microsoft.playwright.Page.navigate(Page.java:5354)
+	at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+	at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+	at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+	at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+	... 41 more
+... Removed 29 stack frames</div></td></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
+<h3 id="m1">com.playwrightdemo.test.AttendancePageTest#setUP</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
+<h3 id="m2">com.playwrightdemo.test.DashboardPageTest#setUP</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
+<h3 id="m3">com.playwrightdemo.test.LoginPageTest#setUP</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
+<h3 id="m4">com.playwrightdemo.test.AttendancePageTest#verifyApplyAttendanceLandingPage</h3><table class="result"><tr><th>Exception</th></tr><tr><td><div class="stacktrace">com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+	at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+	at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+	at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+	at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+	at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+	at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+	at com.microsoft.playwright.Page.navigate(Page.java:5354)
+	at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+	at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+	at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+	at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+	... 41 more
+... Removed 29 stack frames</div></td></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
+<h3 id="m5">com.playwrightdemo.test.AttendancePageTest#verifyAttendanceCalendarLandingPage</h3><table class="result"><tr><th>Exception</th></tr><tr><td><div class="stacktrace">com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+	at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+	at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+	at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+	at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+	at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+	at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+	at com.microsoft.playwright.Page.navigate(Page.java:5354)
+	at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+	at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+	at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+	at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+	... 41 more
+... Removed 29 stack frames</div></td></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
+<h3 id="m6">com.playwrightdemo.test.AttendancePageTest#verifyAttendanceClick</h3><table class="result"><tr><th>Exception</th></tr><tr><td><div class="stacktrace">com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+	at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+	at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+	at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+	at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+	at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+	at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+	at com.microsoft.playwright.Page.navigate(Page.java:5354)
+	at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+	at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+	at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+	at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+	... 41 more
+... Removed 29 stack frames</div></td></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
+<h3 id="m7">com.playwrightdemo.test.LoginPageTest#verifyValidLogin</h3><table class="result"><tr><th>Exception</th></tr><tr><td><div class="stacktrace">com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+	at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+	at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+	at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+	at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+	at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+	at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+	at com.microsoft.playwright.Page.navigate(Page.java:5354)
+	at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+	at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+	at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+	at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+	... 41 more
+... Removed 29 stack frames</div></td></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
+</body>
+</html>

BIN
target/surefire-reports/failed.png


+ 498 - 0
target/surefire-reports/index.html

@@ -0,0 +1,498 @@
+<!DOCTYPE html>
+
+<html>
+  <head>
+  <meta charset='utf-8'>
+  <title>TestNG reports</title>
+
+    <link type="text/css" href="testng-reports1.css" rel="stylesheet" id="ultra" />
+    <link type="text/css" href="testng-reports.css" rel="stylesheet" id="retro" disabled="false"/>
+    <script type="text/javascript" src="jquery-3.6.0.min.js"></script>
+    <script type="text/javascript" src="testng-reports.js"></script>
+    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
+    <script type='text/javascript'>
+      google.load('visualization', '1', {packages:['table']});
+      google.setOnLoadCallback(drawTable);
+      var suiteTableInitFunctions = new Array();
+      var suiteTableData = new Array();
+    </script>
+    <!--
+      <script type="text/javascript" src="jquery-ui/js/jquery-ui-1.8.16.custom.min.js"></script>
+     -->
+  </head>
+
+  <body>    <div class="top-banner-root">
+      <span class="top-banner-title-font">Test results</span>
+      <button id="button" class="button">Switch Retro Theme</button> <!-- button -->
+      <br/>
+      <span class="top-banner-font-1">1 suite</span>
+    </div> <!-- top-banner-root -->
+    <div class="navigator-root">
+      <div class="navigator-suite-header">
+        <span>All suites</span>
+        <a href="#" title="Collapse/expand all the suites" class="collapse-all-link">
+          <img src="collapseall.gif" class="collapse-all-icon">
+          </img> <!-- collapse-all-icon -->
+        </a> <!-- collapse-all-link -->
+      </div> <!-- navigator-suite-header -->
+      <div class="suite">
+        <div class="rounded-window">
+          <div class="suite-header light-rounded-window-top">
+            <a href="#" panel-name="suite-Command_line_suite" class="navigator-link">
+              <span class="suite-name border-skipped">Command line suite</span>
+            </a> <!-- navigator-link -->
+          </div> <!-- suite-header light-rounded-window-top -->
+          <div class="navigator-suite-content">
+            <div class="suite-section-title">
+              <span>Info</span>
+            </div> <!-- suite-section-title -->
+            <div class="suite-section-content">
+              <ul>
+                <li>
+                  <a href="#" panel-name="test-xml-Command_line_suite" class="navigator-link ">
+                    <span>[unset file name]</span>
+                  </a> <!-- navigator-link  -->
+                </li>
+                <li>
+                  <a href="#" panel-name="testlist-Command_line_suite" class="navigator-link ">
+                    <span class="test-stats">1 test</span>
+                  </a> <!-- navigator-link  -->
+                </li>
+                <li>
+                  <a href="#" panel-name="group-Command_line_suite" class="navigator-link ">
+                    <span>0 groups</span>
+                  </a> <!-- navigator-link  -->
+                </li>
+                <li>
+                  <a href="#" panel-name="times-Command_line_suite" class="navigator-link ">
+                    <span>Times</span>
+                  </a> <!-- navigator-link  -->
+                </li>
+                <li>
+                  <a href="#" panel-name="reporter-Command_line_suite" class="navigator-link ">
+                    <span>Reporter output</span>
+                  </a> <!-- navigator-link  -->
+                </li>
+                <li>
+                  <a href="#" panel-name="ignored-methods-Command_line_suite" class="navigator-link ">
+                    <span>Ignored methods</span>
+                  </a> <!-- navigator-link  -->
+                </li>
+                <li>
+                  <a href="#" panel-name="chronological-Command_line_suite" class="navigator-link ">
+                    <span>Chronological view</span>
+                  </a> <!-- navigator-link  -->
+                </li>
+              </ul>
+            </div> <!-- suite-section-content -->
+            <div class="result-section">
+              <div class="suite-section-title">
+                <span>Results</span>
+              </div> <!-- suite-section-title -->
+              <div class="suite-section-content">
+                <ul>
+                  <li>
+                    <span class="method-stats">4 methods,  4 skipped,  </span>
+                  </li>
+                  <li>
+                    <span class="method-list-title skipped">Skipped methods</span>
+                    <span class="show-or-hide-methods skipped">
+                      <a href="#" panel-name="suite-Command_line_suite" class="hide-methods skipped suite-Command_line_suite"> (hide)</a> <!-- hide-methods skipped suite-Command_line_suite -->
+                      <a href="#" panel-name="suite-Command_line_suite" class="show-methods skipped suite-Command_line_suite"> (show)</a> <!-- show-methods skipped suite-Command_line_suite -->
+                    </span>
+                    <div class="method-list-content skipped suite-Command_line_suite">
+                      <span>
+                        <img src="skipped.png" width="3%"/>
+                        <a href="#" panel-name="suite-Command_line_suite" title="com.playwrightdemo.test.AttendancePageTest" class="method navigator-link" hash-for-method="verifyApplyAttendanceLandingPage">verifyApplyAttendanceLandingPage</a> <!-- method navigator-link -->
+                      </span>
+                      <br/>
+                      <span>
+                        <img src="skipped.png" width="3%"/>
+                        <a href="#" panel-name="suite-Command_line_suite" title="com.playwrightdemo.test.AttendancePageTest" class="method navigator-link" hash-for-method="verifyAttendanceCalendarLandingPage">verifyAttendanceCalendarLandingPage</a> <!-- method navigator-link -->
+                      </span>
+                      <br/>
+                      <span>
+                        <img src="skipped.png" width="3%"/>
+                        <a href="#" panel-name="suite-Command_line_suite" title="com.playwrightdemo.test.AttendancePageTest" class="method navigator-link" hash-for-method="verifyAttendanceClick">verifyAttendanceClick</a> <!-- method navigator-link -->
+                      </span>
+                      <br/>
+                      <span>
+                        <img src="skipped.png" width="3%"/>
+                        <a href="#" panel-name="suite-Command_line_suite" title="com.playwrightdemo.test.LoginPageTest" class="method navigator-link" hash-for-method="verifyValidLogin">verifyValidLogin</a> <!-- method navigator-link -->
+                      </span>
+                      <br/>
+                    </div> <!-- method-list-content skipped suite-Command_line_suite -->
+                  </li>
+                </ul>
+              </div> <!-- suite-section-content -->
+            </div> <!-- result-section -->
+          </div> <!-- navigator-suite-content -->
+        </div> <!-- rounded-window -->
+      </div> <!-- suite -->
+    </div> <!-- navigator-root -->
+    <div class="wrapper">
+      <div class="main-panel-root">
+        <div panel-name="suite-Command_line_suite" class="panel Command_line_suite">
+          <div class="suite-Command_line_suite-class-skipped">
+            <div class="main-panel-header rounded-window-top">
+              <img src="skipped.png"/>
+              <span class="class-name">com.playwrightdemo.test.AttendancePageTest</span>
+            </div> <!-- main-panel-header rounded-window-top -->
+            <div class="main-panel-content rounded-window-bottom">
+              <div class="method">
+                <div class="method-content">
+                  <a name="verifyApplyAttendanceLandingPage">
+                  </a> <!-- verifyApplyAttendanceLandingPage -->
+                  <span class="method-name">verifyApplyAttendanceLandingPage</span>
+                  <div class="stack-trace">com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+	at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+	at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+	at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+	at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+	at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+	at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+	at com.microsoft.playwright.Page.navigate(Page.java:5354)
+	at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+	at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+	at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+	at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+	... 41 more
+... Removed 29 stack frames
+</div> <!-- stack-trace -->
+                </div> <!-- method-content -->
+              </div> <!-- method -->
+              <div class="method">
+                <div class="method-content">
+                  <a name="verifyAttendanceCalendarLandingPage">
+                  </a> <!-- verifyAttendanceCalendarLandingPage -->
+                  <span class="method-name">verifyAttendanceCalendarLandingPage</span>
+                  <div class="stack-trace">com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+	at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+	at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+	at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+	at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+	at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+	at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+	at com.microsoft.playwright.Page.navigate(Page.java:5354)
+	at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+	at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+	at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+	at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+	... 41 more
+... Removed 29 stack frames
+</div> <!-- stack-trace -->
+                </div> <!-- method-content -->
+              </div> <!-- method -->
+              <div class="method">
+                <div class="method-content">
+                  <a name="verifyAttendanceClick">
+                  </a> <!-- verifyAttendanceClick -->
+                  <span class="method-name">verifyAttendanceClick</span>
+                  <div class="stack-trace">com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+	at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+	at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+	at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+	at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+	at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+	at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+	at com.microsoft.playwright.Page.navigate(Page.java:5354)
+	at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+	at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+	at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+	at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+	... 41 more
+... Removed 29 stack frames
+</div> <!-- stack-trace -->
+                </div> <!-- method-content -->
+              </div> <!-- method -->
+            </div> <!-- main-panel-content rounded-window-bottom -->
+          </div> <!-- suite-Command_line_suite-class-skipped -->
+          <div class="suite-Command_line_suite-class-skipped">
+            <div class="main-panel-header rounded-window-top">
+              <img src="skipped.png"/>
+              <span class="class-name">com.playwrightdemo.test.LoginPageTest</span>
+            </div> <!-- main-panel-header rounded-window-top -->
+            <div class="main-panel-content rounded-window-bottom">
+              <div class="method">
+                <div class="method-content">
+                  <a name="verifyValidLogin">
+                  </a> <!-- verifyValidLogin -->
+                  <span class="method-name">verifyValidLogin</span>
+                  <div class="stack-trace">com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+	at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+	at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+	at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+	at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+	at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+	at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+	at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+	at com.microsoft.playwright.Page.navigate(Page.java:5354)
+	at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+	at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+	at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message=&apos;Timeout 30000ms exceeded.
+  name=&apos;TimeoutError
+  stack=&apos;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+
+	at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+	at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+	at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+	... 41 more
+... Removed 29 stack frames
+</div> <!-- stack-trace -->
+                </div> <!-- method-content -->
+              </div> <!-- method -->
+            </div> <!-- main-panel-content rounded-window-bottom -->
+          </div> <!-- suite-Command_line_suite-class-skipped -->
+        </div> <!-- panel Command_line_suite -->
+        <div panel-name="test-xml-Command_line_suite" class="panel">
+          <div class="main-panel-header rounded-window-top">
+          </div> <!-- main-panel-header rounded-window-top -->
+          <div class="main-panel-content rounded-window-bottom">
+            <pre>
+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;!DOCTYPE suite SYSTEM &quot;https://testng.org/testng-1.0.dtd&quot;&gt;
+&lt;suite name=&quot;Command line suite&quot; verbose=&quot;0&quot;&gt;
+  &lt;test thread-count=&quot;5&quot; name=&quot;Command line test&quot; verbose=&quot;0&quot;&gt;
+    &lt;classes&gt;
+      &lt;class name=&quot;com.playwrightdemo.test.AttendancePageTest&quot;/&gt;
+      &lt;class name=&quot;com.playwrightdemo.test.BaseTest&quot;/&gt;
+      &lt;class name=&quot;com.playwrightdemo.test.DashboardPageTest&quot;/&gt;
+      &lt;class name=&quot;com.playwrightdemo.test.LoginPageTest&quot;/&gt;
+    &lt;/classes&gt;
+  &lt;/test&gt; &lt;!-- Command line test --&gt;
+&lt;/suite&gt; &lt;!-- Command line suite --&gt;
+            </pre>
+          </div> <!-- main-panel-content rounded-window-bottom -->
+        </div> <!-- panel -->
+        <div panel-name="testlist-Command_line_suite" class="panel">
+          <div class="main-panel-header rounded-window-top">
+            <span class="header-content">Tests for Command line suite</span>
+          </div> <!-- main-panel-header rounded-window-top -->
+          <div class="main-panel-content rounded-window-bottom">
+            <ul>
+              <li>
+                <span class="test-name">Command line test (4 classes)</span>
+              </li>
+            </ul>
+          </div> <!-- main-panel-content rounded-window-bottom -->
+        </div> <!-- panel -->
+        <div panel-name="group-Command_line_suite" class="panel">
+          <div class="main-panel-header rounded-window-top">
+            <span class="header-content">Groups for Command line suite</span>
+          </div> <!-- main-panel-header rounded-window-top -->
+          <div class="main-panel-content rounded-window-bottom">
+          </div> <!-- main-panel-content rounded-window-bottom -->
+        </div> <!-- panel -->
+        <div panel-name="times-Command_line_suite" class="panel">
+          <div class="main-panel-header rounded-window-top">
+            <span class="header-content">Times for Command line suite</span>
+          </div> <!-- main-panel-header rounded-window-top -->
+          <div class="main-panel-content rounded-window-bottom">
+            <div class="times-div">
+              <script type="text/javascript">
+suiteTableInitFunctions.push('tableData_Command_line_suite');
+function tableData_Command_line_suite() {
+var data = new google.visualization.DataTable();
+data.addColumn('number', 'Number');
+data.addColumn('string', 'Method');
+data.addColumn('string', 'Class');
+data.addColumn('number', 'Time (ms)');
+data.addRows(4);
+data.setCell(0, 0, 0)
+data.setCell(0, 1, 'verifyApplyAttendanceLandingPage')
+data.setCell(0, 2, 'com.playwrightdemo.test.AttendancePageTest')
+data.setCell(0, 3, 0);
+data.setCell(1, 0, 1)
+data.setCell(1, 1, 'verifyAttendanceCalendarLandingPage')
+data.setCell(1, 2, 'com.playwrightdemo.test.AttendancePageTest')
+data.setCell(1, 3, 0);
+data.setCell(2, 0, 2)
+data.setCell(2, 1, 'verifyAttendanceClick')
+data.setCell(2, 2, 'com.playwrightdemo.test.AttendancePageTest')
+data.setCell(2, 3, 0);
+data.setCell(3, 0, 3)
+data.setCell(3, 1, 'verifyValidLogin')
+data.setCell(3, 2, 'com.playwrightdemo.test.LoginPageTest')
+data.setCell(3, 3, 0);
+window.suiteTableData['Command_line_suite']= { tableData: data, tableDiv: 'times-div-Command_line_suite'}
+return data;
+}
+              </script>
+              <span class="suite-total-time">Total running time: 0 ms</span>
+              <div id="times-div-Command_line_suite">
+              </div> <!-- times-div-Command_line_suite -->
+            </div> <!-- times-div -->
+          </div> <!-- main-panel-content rounded-window-bottom -->
+        </div> <!-- panel -->
+        <div panel-name="reporter-Command_line_suite" class="panel">
+          <div class="main-panel-header rounded-window-top">
+            <span class="header-content">Reporter output for Command line suite</span>
+          </div> <!-- main-panel-header rounded-window-top -->
+          <div class="main-panel-content rounded-window-bottom">
+          </div> <!-- main-panel-content rounded-window-bottom -->
+        </div> <!-- panel -->
+        <div panel-name="ignored-methods-Command_line_suite" class="panel">
+          <div class="main-panel-header rounded-window-top">
+            <span class="header-content">5 ignored methods</span>
+          </div> <!-- main-panel-header rounded-window-top -->
+          <div class="main-panel-content rounded-window-bottom">
+            <div class="ignored-class-div">
+              <span class="ignored-class-name">com.playwrightdemo.test.DashboardPageTest</span>
+              <div class="ignored-methods-div">
+                <span class="ignored-method-name">verifyDashboardLandingPage</span>
+                <br/>
+              </div> <!-- ignored-methods-div -->
+            </div> <!-- ignored-class-div -->
+            <div class="ignored-class-div">
+              <span class="ignored-class-name">com.playwrightdemo.test.LoginPageTest</span>
+              <div class="ignored-methods-div">
+                <span class="ignored-method-name">verifyInvalidLogin</span>
+                <br/>
+                <span class="ignored-method-name">verifyPageURL</span>
+                <br/>
+                <span class="ignored-method-name">verifyPageTitle</span>
+                <br/>
+                <span class="ignored-method-name">verifyMultipleUserLogin</span>
+                <br/>
+              </div> <!-- ignored-methods-div -->
+            </div> <!-- ignored-class-div -->
+          </div> <!-- main-panel-content rounded-window-bottom -->
+        </div> <!-- panel -->
+        <div panel-name="chronological-Command_line_suite" class="panel">
+          <div class="main-panel-header rounded-window-top">
+            <span class="header-content">Methods in chronological order</span>
+          </div> <!-- main-panel-header rounded-window-top -->
+          <div class="main-panel-content rounded-window-bottom">
+            <div class="chronological-class">
+              <div class="chronological-class-name">com.playwrightdemo.test.BaseTest</div> <!-- chronological-class-name -->
+              <div class="configuration-suite before">
+                <img src="failed.png">
+                </img>
+                <span class="method-name">setUP</span>
+                <span class="method-start">0 ms</span>
+              </div> <!-- configuration-suite before -->
+          </div> <!-- main-panel-content rounded-window-bottom -->
+        </div> <!-- panel -->
+      </div> <!-- main-panel-root -->
+    </div> <!-- wrapper -->
+  </body>
+<script type="text/javascript" src="testng-reports2.js"></script>
+</html>

File diff suppressed because it is too large
+ 1 - 0
target/surefire-reports/jquery-3.6.0.min.js


+ 13 - 0
target/surefire-reports/junitreports/TEST-com.playwrightdemo.test.AttendancePageTest.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated by org.testng.reporters.JUnitReportReporter -->
+<testsuite hostname="ISHLTP117" failures="0" tests="3" name="com.playwrightdemo.test.AttendancePageTest" time="0.000" errors="0" timestamp="2024-06-12T22:32:58 IST" skipped="3">
+  <testcase classname="com.playwrightdemo.test.AttendancePageTest" name="verifyApplyAttendanceLandingPage" time="0.000">
+    <skipped/>
+  </testcase> <!-- verifyApplyAttendanceLandingPage -->
+  <testcase classname="com.playwrightdemo.test.AttendancePageTest" name="verifyAttendanceCalendarLandingPage" time="0.000">
+    <skipped/>
+  </testcase> <!-- verifyAttendanceCalendarLandingPage -->
+  <testcase classname="com.playwrightdemo.test.AttendancePageTest" name="verifyAttendanceClick" time="0.000">
+    <skipped/>
+  </testcase> <!-- verifyAttendanceClick -->
+</testsuite> <!-- com.playwrightdemo.test.AttendancePageTest -->

+ 94 - 0
target/surefire-reports/junitreports/TEST-com.playwrightdemo.test.BaseTest.xml

@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated by org.testng.reporters.JUnitReportReporter -->
+<testsuite hostname="ISHLTP117" failures="0" tests="1" name="com.playwrightdemo.test.BaseTest" time="34.730" errors="1" timestamp="2024-06-12T22:32:58 IST" skipped="0">
+  <testcase classname="com.playwrightdemo.test.BaseTest" name="setUP" time="34.730">
+    <error message="Error {
+  message=&#039;Timeout 30000ms exceeded.
+  name=&#039;TimeoutError
+  stack=&#039;TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to &quot;https://excellence.ishir.com/&quot;, waiting until &quot;load&quot;
+" type="com.microsoft.playwright.TimeoutError">
+      <![CDATA[com.microsoft.playwright.TimeoutError: Error {
+  message='Timeout 30000ms exceeded.
+  name='TimeoutError
+  stack='TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to "https://excellence.ishir.com/", waiting until "load"
+
+at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+at com.microsoft.playwright.Page.navigate(Page.java:5354)
+at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
+at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:71)
+at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:400)
+at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:333)
+at org.testng.SuiteRunner.privateRun(SuiteRunner.java:358)
+at org.testng.SuiteRunner.run(SuiteRunner.java:312)
+at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
+at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
+at org.testng.TestNG.runSuites(TestNG.java:1112)
+at org.testng.TestNG.run(TestNG.java:1079)
+at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:77)
+at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:159)
+at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:99)
+at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:106)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
+at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
+at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
+at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
+at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message='Timeout 30000ms exceeded.
+  name='TimeoutError
+  stack='TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to "https://excellence.ishir.com/", waiting until "load"
+
+at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+... 41 more
+]]>
+    </error>
+  </testcase> <!-- setUP -->
+</testsuite> <!-- com.playwrightdemo.test.BaseTest -->

+ 19 - 0
target/surefire-reports/junitreports/TEST-com.playwrightdemo.test.LoginPageTest.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated by org.testng.reporters.JUnitReportReporter -->
+<testsuite hostname="ISHLTP117" failures="0" tests="5" name="com.playwrightdemo.test.LoginPageTest" time="0.000" errors="0" timestamp="2024-06-12T22:32:58 IST" skipped="5">
+  <testcase classname="com.playwrightdemo.test.LoginPageTest" name="verifyValidLogin" time="0.000">
+    <skipped/>
+  </testcase> <!-- verifyValidLogin -->
+  <testcase classname="com.playwrightdemo.test.LoginPageTest" name="verifyInvalidLogin">
+    <skipped/>
+  </testcase> <!-- verifyInvalidLogin -->
+  <testcase classname="com.playwrightdemo.test.LoginPageTest" name="verifyPageURL">
+    <skipped/>
+  </testcase> <!-- verifyPageURL -->
+  <testcase classname="com.playwrightdemo.test.LoginPageTest" name="verifyPageTitle">
+    <skipped/>
+  </testcase> <!-- verifyPageTitle -->
+  <testcase classname="com.playwrightdemo.test.LoginPageTest" name="verifyMultipleUserLogin">
+    <skipped/>
+  </testcase> <!-- verifyMultipleUserLogin -->
+</testsuite> <!-- com.playwrightdemo.test.LoginPageTest -->

BIN
target/surefire-reports/navigator-bullet.png


BIN
target/surefire-reports/passed.png


BIN
target/surefire-reports/skipped.png


+ 32 - 0
target/surefire-reports/testng-failed.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
+<suite name="Failed suite [Command line suite]" verbose="0">
+  <test thread-count="5" name="Command line test(failed)" verbose="0">
+    <classes>
+      <class name="com.playwrightdemo.test.DashboardPageTest">
+        <methods>
+          <include name="setUP"/>
+        </methods>
+      </class> <!-- com.playwrightdemo.test.DashboardPageTest -->
+      <class name="com.playwrightdemo.test.AttendancePageTest">
+        <methods>
+          <include name="setUP"/>
+          <include name="verifyAttendanceCalendarLandingPage"/>
+          <include name="verifyApplyAttendanceLandingPage"/>
+          <include name="verifyAttendanceClick"/>
+        </methods>
+      </class> <!-- com.playwrightdemo.test.AttendancePageTest -->
+      <class name="com.playwrightdemo.test.LoginPageTest">
+        <methods>
+          <include name="setUP"/>
+          <include name="verifyValidLogin"/>
+        </methods>
+      </class> <!-- com.playwrightdemo.test.LoginPageTest -->
+      <class name="com.playwrightdemo.test.BaseTest">
+        <methods>
+          <include name="setUP"/>
+        </methods>
+      </class> <!-- com.playwrightdemo.test.BaseTest -->
+    </classes>
+  </test> <!-- Command line test(failed) -->
+</suite> <!-- Failed suite [Command line suite] -->

+ 326 - 0
target/surefire-reports/testng-reports.css

@@ -0,0 +1,326 @@
+body {
+    margin: 0 0 5px 5px;
+}
+
+ul {
+    margin: 0;
+}
+
+li {
+    list-style-type: none;
+}
+
+a {
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: underline;
+}
+
+.navigator-selected {
+    background: #ffa500;
+}
+
+.wrapper {
+    position: absolute;
+    top: 60px;
+    bottom: 0;
+    left: 400px;
+    right: 0;
+    overflow: auto;
+}
+
+.navigator-root {
+    position: absolute;
+    top: 60px;
+    bottom: 0;
+    left: 0;
+    width: 400px;
+    overflow-y: auto;
+}
+
+.suite {
+    margin: 0 10px 10px 0;
+    background-color: #fff8dc;
+}
+
+.suite-name {
+    padding-left: 10px;
+    font-size: 25px;
+    font-family: Times, sans-serif;
+}
+
+.main-panel-header {
+    padding: 5px;
+    background-color: #9FB4D9; /*afeeee*/;
+    font-family: monospace;
+    font-size: 18px;
+}
+
+.main-panel-content {
+    padding: 5px;
+    margin-bottom: 10px;
+    background-color: #DEE8FC; /*d0ffff*/;
+}
+
+.rounded-window {
+    border-radius: 10px;
+    border-style: solid;
+    border-width: 1px;
+}
+
+.rounded-window-top {
+    border-top-right-radius: 10px 10px;
+    border-top-left-radius: 10px 10px;
+    border-style: solid;
+    border-width: 1px;
+    overflow: auto;
+}
+
+.light-rounded-window-top {
+    border-top-right-radius: 10px 10px;
+    border-top-left-radius: 10px 10px;
+}
+
+.rounded-window-bottom {
+    border-style: solid;
+    border-width: 0 1px 1px 1px;
+    border-bottom-right-radius: 10px 10px;
+    border-bottom-left-radius: 10px 10px;
+    overflow: auto;
+}
+
+.method-name {
+    font-size: 12px;
+    font-family: monospace;
+}
+
+.method-content {
+    border-style: solid;
+    border-width: 0 0 1px 0;
+    margin-bottom: 10px;
+    padding-bottom: 5px;
+    width: 80%;
+}
+
+.parameters {
+    font-size: 14px;
+    font-family: monospace;
+}
+
+.stack-trace {
+    white-space: pre;
+    font-family: monospace;
+    font-size: 12px;
+    font-weight: bold;
+    margin-top: 0;
+    margin-left: 20px;
+}
+
+.testng-xml {
+    font-family: monospace;
+}
+
+.method-list-content {
+    margin-left: 10px;
+}
+
+.navigator-suite-content {
+    margin-left: 10px;
+    font: 12px 'Lucida Grande';
+}
+
+.suite-section-title {
+    margin-top: 10px;
+    width: 80%;
+    border-style: solid;
+    border-width: 1px 0 0 0;
+    font-family: Times, sans-serif;
+    font-size: 18px;
+    font-weight: bold;
+}
+
+.suite-section-content {
+    list-style-image: url(bullet_point.png);
+}
+
+.top-banner-root {
+    position: absolute;
+    top: 0;
+    height: 45px;
+    left: 0;
+    right: 0;
+    padding: 5px;
+    margin: 0 0 5px 0;
+    background-color: #0066ff;
+    font-family: Times, sans-serif;
+    color: #fff;
+    text-align: center;
+}
+.button{
+    position: absolute;
+    margin-left:500px;
+    margin-top:8px;
+    background-color: white;
+    color:#0066ff;
+    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+    font-weight:bold;
+    border-color:#0066ff ;
+    border-radius:25px;
+    cursor: pointer;
+    height:30px;
+    width:150px;
+    outline:none;
+
+}
+
+.top-banner-title-font {
+    font-size: 25px;
+}
+
+.test-name {
+    font-family: 'Lucida Grande', sans-serif;
+    font-size: 16px;
+}
+
+.suite-icon {
+    padding: 5px;
+    float: right;
+    height: 20px;
+}
+
+.test-group {
+    font: 20px 'Lucida Grande';
+    margin: 5px 5px 10px 5px;
+    border-width: 0 0 1px 0;
+    border-style: solid;
+    padding: 5px;
+}
+
+.test-group-name {
+    font-weight: bold;
+}
+
+.method-in-group {
+    font-size: 16px;
+    margin-left: 80px;
+}
+
+table.google-visualization-table-table {
+    width: 100%;
+}
+
+.reporter-method-name {
+    font-size: 14px;
+    font-family: monospace;
+}
+
+.reporter-method-output-div {
+    padding: 5px;
+    margin: 0 0 5px 20px;
+    font-size: 12px;
+    font-family: monospace;
+    border-width: 0 0 0 1px;
+    border-style: solid;
+}
+
+.ignored-class-div {
+    font-size: 14px;
+    font-family: monospace;
+}
+
+.ignored-methods-div {
+    padding: 5px;
+    margin: 0 0 5px 20px;
+    font-size: 12px;
+    font-family: monospace;
+    border-width: 0 0 0 1px;
+    border-style: solid;
+}
+
+.border-failed {
+    border-top-left-radius: 10px 10px;
+    border-bottom-left-radius: 10px 10px;
+    border-style: solid;
+    border-width: 0 0 0 10px;
+    border-color: #f00;
+}
+
+.border-skipped {
+    border-top-left-radius: 10px 10px;
+    border-bottom-left-radius: 10px 10px;
+    border-style: solid;
+    border-width: 0 0 0 10px;
+    border-color: #edc600;
+}
+
+.border-passed {
+    border-top-left-radius: 10px 10px;
+    border-bottom-left-radius: 10px 10px;
+    border-style: solid;
+    border-width: 0 0 0 10px;
+    border-color: #19f52d;
+}
+
+.times-div {
+    text-align: center;
+    padding: 5px;
+}
+
+.suite-total-time {
+    font: 16px 'Lucida Grande';
+}
+
+.configuration-suite {
+    margin-left: 20px;
+}
+
+.configuration-test {
+    margin-left: 40px;
+}
+
+.configuration-class {
+    margin-left: 60px;
+}
+
+.configuration-method {
+    margin-left: 80px;
+}
+
+.test-method {
+    margin-left: 100px;
+}
+
+.chronological-class {
+    background-color: skyblue;
+    border-style: solid;
+    border-width: 0 0 1px 1px;
+}
+
+.method-start {
+    float: right;
+}
+
+.chronological-class-name {
+    padding: 0 0 0 5px;
+    color: #008;
+}
+
+.after, .before, .test-method {
+    font-family: monospace;
+    font-size: 14px;
+}
+
+.navigator-suite-header {
+    font-size: 22px;
+    margin: 0 10px 5px 0;
+    background-color: #deb887;
+    text-align: center;
+}
+
+.collapse-all-icon {
+    padding: 5px;
+    float: right;
+}
+/*retro Theme*/

+ 122 - 0
target/surefire-reports/testng-reports.js

@@ -0,0 +1,122 @@
+$(document).ready(function() {
+    $('a.navigator-link').on("click", function() {
+        // Extract the panel for this link
+        var panel = getPanelName($(this));
+
+        // Mark this link as currently selected
+        $('.navigator-link').parent().removeClass('navigator-selected');
+        $(this).parent().addClass('navigator-selected');
+
+        showPanel(panel);
+    });
+
+    installMethodHandlers('failed');
+    installMethodHandlers('skipped');
+    installMethodHandlers('passed', true); // hide passed methods by default
+
+    $('a.method').on("click", function() {
+        showMethod($(this));
+        return false;
+    });
+
+    // Hide all the panels and display the first one (do this last
+    // to make sure the click() will invoke the listeners)
+    $('.panel').hide();
+    $('.navigator-link').first().trigger("click");
+
+    // Collapse/expand the suites
+    $('a.collapse-all-link').on("click", function() {
+        var contents = $('.navigator-suite-content');
+        if (contents.css('display') == 'none') {
+            contents.show();
+        } else {
+            contents.hide();
+        }
+    });
+});
+
+// The handlers that take care of showing/hiding the methods
+function installMethodHandlers(name, hide) {
+    function getContent(t) {
+    return $('.method-list-content.' + name + "." + t.attr('panel-name'));
+    }
+
+    function getHideLink(t, name) {
+        var s = 'a.hide-methods.' + name + "." + t.attr('panel-name');
+        return $(s);
+    }
+
+    function getShowLink(t, name) {
+        return $('a.show-methods.' + name + "." + t.attr('panel-name'));
+    }
+
+    function getMethodPanelClassSel(element, name) {
+        var panelName = getPanelName(element);
+    var sel = '.' + panelName + "-class-" + name;
+        return $(sel);
+    }
+
+    $('a.hide-methods.' + name).on("click", function() {
+        var w = getContent($(this));
+        w.hide();
+        getHideLink($(this), name).hide();
+        getShowLink($(this), name).show();
+    getMethodPanelClassSel($(this), name).hide();
+    });
+
+    $('a.show-methods.' + name).on("click", function() {
+        var w = getContent($(this));
+        w.show();
+        getHideLink($(this), name).show();
+        getShowLink($(this), name).hide();
+    showPanel(getPanelName($(this)));
+    getMethodPanelClassSel($(this), name).show();
+    });
+
+    if (hide) {
+        $('a.hide-methods.' + name).trigger("click");
+    } else {
+        $('a.show-methods.' + name).trigger("click");
+    }
+}
+
+function getHashForMethod(element) {
+    return element.attr('hash-for-method');
+}
+
+function getPanelName(element) {
+    return element.attr('panel-name');
+}
+
+function showPanel(panelName) {
+    $('.panel').hide();
+    var panel = $('.panel[panel-name="' + panelName + '"]');
+    panel.show();
+}
+
+function showMethod(element) {
+    var hashTag = getHashForMethod(element);
+    var panelName = getPanelName(element);
+    showPanel(panelName);
+    var current = document.location.href;
+    var base = current.substring(0, current.indexOf('#'))
+    document.location.href = base + '#' + hashTag;
+    var newPosition = $(document).scrollTop() - 65;
+    $(document).scrollTop(newPosition);
+}
+
+function drawTable() {
+    for (var i = 0; i < suiteTableInitFunctions.length; i++) {
+        window[suiteTableInitFunctions[i]]();
+    }
+
+    for (var k in window.suiteTableData) {
+        var v = window.suiteTableData[k];
+        var div = v.tableDiv;
+        var data = v.tableData
+        var table = new google.visualization.Table(document.getElementById(div));
+        table.draw(data, {
+            showRowNumber : false
+        });
+    }
+}

+ 344 - 0
target/surefire-reports/testng-reports1.css

@@ -0,0 +1,344 @@
+body {
+    background-color: whitesmoke;
+    margin: 0 0 5px 5px;
+}
+ul {
+     margin-top: 10px;
+     margin-left:-10px;
+}
+ li {
+     font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+     padding:5px 5px;
+ }
+ a {
+     text-decoration: none;
+     color: black;
+     font-size: 14px;
+ }
+
+ a:hover {
+    color:black ;
+    text-decoration: underline;
+ }
+
+ .navigator-selected {
+     /* #ffa500; Mouse hover color after click Orange.*/
+     background:#027368
+ }
+
+ .wrapper {
+     position: absolute;
+     top: 60px;
+     bottom: 0;
+     left: 400px;
+     right: 0;
+     margin-right:9px;
+     overflow: auto;/*imortant*/
+ }
+
+ .navigator-root {
+     position: absolute;
+     top: 60px;
+     bottom: 0;
+     left: 0;
+     width: 400px;
+     overflow-y: auto;/*important*/
+ }
+
+ .suite {
+     margin: -5px 10px 10px 5px;
+     background-color: whitesmoke ;/*Colour of the left bside box*/
+ }
+
+ .suite-name {
+     font-size: 24px;
+     font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;/*All TEST SUITE*/
+     color: white;
+ }
+
+ .main-panel-header {
+     padding: 5px;
+     background-color: #027368; /*afeeee*/;
+     font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+     color:white;
+     font-size: 18px;
+ }
+
+ .main-panel-content {
+     padding: 5px;
+     margin-bottom: 10px;
+     background-color: #CCD0D1; /*d0ffff*/; /*Belongs to backGround of rightSide boxes*/
+ }
+
+ .rounded-window {
+     border-style: dotted;
+     border-width: 1px;/*Border of left Side box*/
+     background-color: whitesmoke;
+     border-radius: 10px;
+ }
+
+ .rounded-window-top {
+     border-top-right-radius: 10px 10px;
+     border-top-left-radius: 10px 10px;
+     border-style: solid;
+     border-width: 1px;
+     overflow: auto;/*Top of RightSide box*/
+ }
+
+ .light-rounded-window-top {
+     background-color: #027368;
+     padding-left:120px;
+     border-radius: 10px;
+
+ }
+
+ .rounded-window-bottom {
+     border-bottom-right-radius: 10px 10px;
+     border-bottom-left-radius: 10px 10px;
+     overflow: auto;/*Bottom of rightSide box*/
+ }
+
+ .method-name {
+     font-size: 14px;
+     font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+     font-weight: bold;
+ }
+
+ .method-content {
+     border-style: solid;
+     border-width: 0 0 1px 0;
+     margin-bottom: 10px;
+     padding-bottom: 5px;
+     width: 100%;
+ }
+
+ .parameters {
+     font-size: 14px;
+     font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ }
+
+ .stack-trace {
+     white-space: pre;
+     font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+     font-size: 12px;
+     font-weight: bold;
+     margin-top: 0;
+     margin-left: 20px; /*Error Stack Trace Message*/
+ }
+
+ .testng-xml {
+    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ }
+
+ .method-list-content {
+     margin-left: 10px;
+ }
+
+ .navigator-suite-content {
+     margin-left: 10px;
+     font: 12px 'Lucida Grande';
+ }
+
+ .suite-section-title {
+     font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+     font-size: 14px;
+     font-weight:bold;
+     background-color: #8C8887;
+     margin-left: -10px;
+     margin-top:10px;
+     padding:6px;
+ }
+
+ .suite-section-content {
+     list-style-image: url(bullet_point.png);
+     background-color: whitesmoke;
+     font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+     overflow: hidden;
+ }
+
+ .top-banner-root {
+     position: absolute;
+     top: 0;
+     height: 45px;
+     left: 0;
+     right: 0;
+     padding: 5px;
+     margin: 0 0 5px 0;
+     background-color: #027368;
+     font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+     font-size: 18px;
+     color: #fff;
+     text-align: center;/*Belongs to the Top of Report*//*Status: - Completed*/
+ }
+
+ .top-banner-title-font {
+     font-size: 25px;
+     font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+     padding: 3px;
+     float: right;
+ }
+
+ .test-name {
+     font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+     font-size: 16px;
+ }
+
+ .suite-icon {
+     padding: 5px;
+     float: right;
+     height: 20px;
+ }
+
+ .test-group {
+     font: 20px 'Lucida Grande';
+     margin: 5px 5px 10px 5px;
+     border-width: 0 0 1px 0;
+     border-style: solid;
+     padding: 5px;
+ }
+
+ .test-group-name {
+     font-weight: bold;
+ }
+
+ .method-in-group {
+     font-size: 16px;
+     margin-left: 80px;
+ }
+
+ table.google-visualization-table-table {
+     width: 100%;
+ }
+
+ .reporter-method-name {
+     font-size: 14px;
+     font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ }
+
+ .reporter-method-output-div {
+     padding: 5px;
+     margin: 0 0 5px 20px;
+     font-size: 12px;
+     font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+     border-width: 0 0 0 1px;
+     border-style: solid;
+ }
+
+ .ignored-class-div {
+     font-size: 14px;
+     font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ }
+
+ .ignored-methods-div {
+     padding: 5px;
+     margin: 0 0 5px 20px;
+     font-size: 12px;
+     font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+     border-width: 0 0 0 1px;
+     border-style: solid;
+ }
+
+ .border-failed {
+    border-radius:2px;
+     border-style: solid;
+     border-width: 0 0 0 10px;
+     border-color: #F20505;
+ }
+
+ .border-skipped {
+     border-radius:2px;
+     border-style: solid;
+     border-width: 0 0 0 10px;
+     border-color: #F2BE22;
+ }
+
+ .border-passed {
+     border-radius:2px;
+     border-style: solid;
+     border-width: 0 0 0 10px;
+     border-color: #038C73;
+ }
+
+ .times-div {
+     text-align: center;
+     padding: 5px;
+ }
+
+ .suite-total-time {
+     font: 16px 'Lucida Grande';
+ }
+
+ .configuration-suite {
+     margin-left: 20px;
+ }
+
+ .configuration-test {
+     margin-left: 40px;
+ }
+
+ .configuration-class {
+     margin-left: 60px;
+ }
+
+ .configuration-method {
+     margin-left: 80px;
+ }
+
+ .test-method {
+     margin-left: 100px;
+ }
+
+ .chronological-class {
+     background-color: #CCD0D1;
+     border-width: 0 0 1px 1px;/*Chronological*/
+ }
+
+ .method-start {
+     float: right;
+ }
+
+ .chronological-class-name {
+     padding: 0 0 0 5px;
+     margin-top:5px;
+     font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+     color: #008;
+ }
+
+ .after, .before, .test-method {
+     font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+     font-size: 14px;
+     margin-top:5px;
+ }
+
+ .navigator-suite-header {
+     font-size: 18px;
+     margin: 0px 10px 10px 5px;
+     padding: 5px;
+     border-radius: 10px;
+     background-color: #027368;
+     color: white;
+     font-weight:bold;
+     font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+     text-align: center; /*All Suites on top of left box*//*Status: -Completed*/
+ }
+
+ .collapse-all-icon {
+     padding: 3px;
+     float: right;
+ }
+ .button{
+    position: absolute;
+    margin-left:500px;
+    margin-top:8px;
+    background-color: white;
+    color:#027368;
+    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+    font-weight:bold;
+    border-color:#027368;
+    border-radius:25px;
+    cursor: pointer;
+    height:30px;
+    width:150px;
+    outline: none;
+}
+/*Author: - Akhil Gullapalli*/

+ 76 - 0
target/surefire-reports/testng-reports2.js

@@ -0,0 +1,76 @@
+window.onload = function () {
+  let cookies = document.cookie;
+  let cookieValue = cookies.split('=');
+  if (cookieValue[1] === 'null' || localStorage.getItem('Theme') === 'null') {
+    document.getElementById('retro').setAttribute('disabled', 'false');
+  } else if (cookieValue[1] === 'Switch Ultra Theme' ||
+      localStorage.getItem('Theme') === 'Switch Ultra Theme') {
+    document.getElementById('button').innerText = "Switch Retro Theme";
+    document.getElementById('retro').setAttribute('disabled', 'false');
+
+  } else if (cookieValue[1] === 'Switch Retro Theme' ||
+      localStorage.getItem('Theme') === 'Switch Retro Theme') {
+    if (cookieValue[1] === 'Switch Ultra Theme' ||
+        localStorage.getItem('Theme') === 'Switch Ultra Theme') {
+      document.getElementById('button').innerText = "Switch Retro Theme";
+      document.getElementById('retro').setAttribute('disabled', 'false');
+
+      document.getElementById('button').innerText = "Switch Ultra Theme";
+      document.getElementById('retro').removeAttribute('disabled');
+      document.getElementById('ultra').setAttribute('disabled', 'false');
+      localStorage.setItem('Theme', select);
+
+    } else if (select === 'Switch Ultra Theme') {
+      document.getElementById('button').innerText = "Switch Retro Theme";
+      document.getElementById('ultra').removeAttribute('disabled');
+      document.getElementById('retro').setAttribute('disabled', 'false');
+      localStorage.setItem('Theme', select);
+    }
+  } else if (cookieValue[1] === 'Switch Retro Theme' ||
+      localStorage.getItem('Theme') === 'Switch Retro Theme') {
+    document.getElementById('button').innerText = "Switch Ultra Theme";
+    document.getElementById('ultra').setAttribute('disabled', 'false');
+  }
+}
+document.getElementById('button').onclick = function () {
+  let select = document.getElementById('button').innerText;
+  if (select === 'Switch Retro Theme') {
+    let d = new Date();
+    days = 365;
+    d.setTime(+d + (days * 86400000)); //24 * 60 * 60 * 1000
+    document.cookie = "Theme =" + select + "; expires=" + d.toGMTString() + ";";
+    document.getElementById('button').innerText = "Switch Ultra Theme";
+    document.getElementById('retro').removeAttribute('disabled');
+    document.getElementById('ultra').setAttribute('disabled', 'false');
+    localStorage.setItem('Theme', select);
+
+  } else if (select === 'Switch Ultra Theme') {
+    let d = new Date();
+    days = 365;
+    d.setTime(+d + (days * 86400000)); //24 * 60 * 60 * 1000
+    document.cookie = "Theme =" + select + "; expires=" + d.toGMTString() + ";";
+    document.getElementById('button').innerText = "Switch Retro Theme";
+    document.getElementById('ultra').removeAttribute('disabled');
+    document.getElementById('retro').setAttribute('disabled', 'false');
+    localStorage.setItem('Theme', select);
+  }
+}
+//Function to mouse hovering affect.
+document.getElementById('button').onmouseover = function () {
+  document.getElementById('button').style.borderRadius = "25px";
+  document.getElementById('button').style.width = "180px";
+  document.getElementById('button').style.height = "45px";
+  document.getElementById('button').style.marginTop = "1px";
+
+}
+//Function to mouse out affect
+document.getElementById('button').onmouseout = function () {
+  document.getElementById('button').style.borderRadius = "25px";
+  document.getElementById('button').style.width = "150px";
+  document.getElementById('button').style.height = "30px";
+  document.getElementById('button').style.marginTop = "8px";
+
+}
+
+//This is the file where we handle the switching of the Themes.
+/*Author:- Akhil Gullapalli*/

+ 516 - 0
target/surefire-reports/testng-results.xml

@@ -0,0 +1,516 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testng-results ignored="0" total="4" passed="0" failed="0" skipped="4">
+  <reporter-output>
+  </reporter-output>
+  <suite started-at="2024-06-12T22:32:58 IST" name="Command line suite" finished-at="2024-06-12T22:32:58 IST" duration-ms="108">
+    <groups>
+    </groups>
+    <test started-at="2024-06-12T22:32:58 IST" name="Command line test" finished-at="2024-06-12T22:32:58 IST" duration-ms="108">
+      <class name="com.playwrightdemo.test.BaseTest">
+        <test-method is-config="true" signature="setUP()[pri:0, instance:com.playwrightdemo.test.BaseTest@ed3068a]" started-at="2024-06-12T22:32:23 IST" name="setUP" finished-at="2024-06-12T22:32:58 IST" duration-ms="34730" status="FAIL">
+          <exception class="com.microsoft.playwright.TimeoutError">
+            <message>
+              <![CDATA[Error {
+  message='Timeout 30000ms exceeded.
+  name='TimeoutError
+  stack='TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to "https://excellence.ishir.com/", waiting until "load"
+]]>
+            </message>
+            <full-stacktrace>
+              <![CDATA[com.microsoft.playwright.TimeoutError: Error {
+  message='Timeout 30000ms exceeded.
+  name='TimeoutError
+  stack='TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to "https://excellence.ishir.com/", waiting until "load"
+
+at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+at com.microsoft.playwright.Page.navigate(Page.java:5354)
+at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
+at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:71)
+at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:400)
+at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:333)
+at org.testng.SuiteRunner.privateRun(SuiteRunner.java:358)
+at org.testng.SuiteRunner.run(SuiteRunner.java:312)
+at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
+at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
+at org.testng.TestNG.runSuites(TestNG.java:1112)
+at org.testng.TestNG.run(TestNG.java:1079)
+at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:77)
+at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:159)
+at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:99)
+at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:106)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
+at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
+at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
+at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
+at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message='Timeout 30000ms exceeded.
+  name='TimeoutError
+  stack='TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to "https://excellence.ishir.com/", waiting until "load"
+
+at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+... 41 more
+]]>
+            </full-stacktrace>
+          </exception> <!-- com.microsoft.playwright.TimeoutError -->
+          <reporter-output>
+          </reporter-output>
+        </test-method> <!-- setUP -->
+      </class> <!-- com.playwrightdemo.test.BaseTest -->
+      <class name="com.playwrightdemo.test.DashboardPageTest">
+        <test-method is-config="true" signature="setUP()[pri:0, instance:com.playwrightdemo.test.DashboardPageTest@7c2b6087]" started-at="2024-06-12T22:32:58 IST" name="setUP" finished-at="2024-06-12T22:32:58 IST" duration-ms="0" status="SKIP">
+          <reporter-output>
+          </reporter-output>
+        </test-method> <!-- setUP -->
+      </class> <!-- com.playwrightdemo.test.DashboardPageTest -->
+      <class name="com.playwrightdemo.test.LoginPageTest">
+        <test-method is-config="true" signature="setUP()[pri:0, instance:com.playwrightdemo.test.LoginPageTest@3fffff43]" started-at="2024-06-12T22:32:58 IST" name="setUP" finished-at="2024-06-12T22:32:58 IST" duration-ms="0" status="SKIP">
+          <reporter-output>
+          </reporter-output>
+        </test-method> <!-- setUP -->
+        <test-method signature="verifyValidLogin()[pri:0, instance:com.playwrightdemo.test.LoginPageTest@3fffff43]" started-at="2024-06-12T22:32:58 IST" name="verifyValidLogin" finished-at="2024-06-12T22:32:58 IST" duration-ms="0" status="SKIP">
+          <exception class="com.microsoft.playwright.TimeoutError">
+            <message>
+              <![CDATA[Error {
+  message='Timeout 30000ms exceeded.
+  name='TimeoutError
+  stack='TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to "https://excellence.ishir.com/", waiting until "load"
+]]>
+            </message>
+            <full-stacktrace>
+              <![CDATA[com.microsoft.playwright.TimeoutError: Error {
+  message='Timeout 30000ms exceeded.
+  name='TimeoutError
+  stack='TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to "https://excellence.ishir.com/", waiting until "load"
+
+at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+at com.microsoft.playwright.Page.navigate(Page.java:5354)
+at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
+at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:71)
+at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:400)
+at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:333)
+at org.testng.SuiteRunner.privateRun(SuiteRunner.java:358)
+at org.testng.SuiteRunner.run(SuiteRunner.java:312)
+at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
+at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
+at org.testng.TestNG.runSuites(TestNG.java:1112)
+at org.testng.TestNG.run(TestNG.java:1079)
+at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:77)
+at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:159)
+at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:99)
+at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:106)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
+at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
+at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
+at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
+at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message='Timeout 30000ms exceeded.
+  name='TimeoutError
+  stack='TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to "https://excellence.ishir.com/", waiting until "load"
+
+at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+... 41 more
+]]>
+            </full-stacktrace>
+          </exception> <!-- com.microsoft.playwright.TimeoutError -->
+          <reporter-output>
+          </reporter-output>
+        </test-method> <!-- verifyValidLogin -->
+      </class> <!-- com.playwrightdemo.test.LoginPageTest -->
+      <class name="com.playwrightdemo.test.AttendancePageTest">
+        <test-method is-config="true" signature="setUP()[pri:0, instance:com.playwrightdemo.test.AttendancePageTest@531c311e]" started-at="2024-06-12T22:32:58 IST" name="setUP" finished-at="2024-06-12T22:32:58 IST" duration-ms="0" status="SKIP">
+          <reporter-output>
+          </reporter-output>
+        </test-method> <!-- setUP -->
+        <test-method signature="verifyApplyAttendanceLandingPage()[pri:0, instance:com.playwrightdemo.test.AttendancePageTest@531c311e]" started-at="2024-06-12T22:32:58 IST" name="verifyApplyAttendanceLandingPage" finished-at="2024-06-12T22:32:58 IST" duration-ms="0" status="SKIP">
+          <exception class="com.microsoft.playwright.TimeoutError">
+            <message>
+              <![CDATA[Error {
+  message='Timeout 30000ms exceeded.
+  name='TimeoutError
+  stack='TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to "https://excellence.ishir.com/", waiting until "load"
+]]>
+            </message>
+            <full-stacktrace>
+              <![CDATA[com.microsoft.playwright.TimeoutError: Error {
+  message='Timeout 30000ms exceeded.
+  name='TimeoutError
+  stack='TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to "https://excellence.ishir.com/", waiting until "load"
+
+at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+at com.microsoft.playwright.Page.navigate(Page.java:5354)
+at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
+at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:71)
+at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:400)
+at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:333)
+at org.testng.SuiteRunner.privateRun(SuiteRunner.java:358)
+at org.testng.SuiteRunner.run(SuiteRunner.java:312)
+at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
+at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
+at org.testng.TestNG.runSuites(TestNG.java:1112)
+at org.testng.TestNG.run(TestNG.java:1079)
+at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:77)
+at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:159)
+at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:99)
+at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:106)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
+at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
+at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
+at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
+at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message='Timeout 30000ms exceeded.
+  name='TimeoutError
+  stack='TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to "https://excellence.ishir.com/", waiting until "load"
+
+at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+... 41 more
+]]>
+            </full-stacktrace>
+          </exception> <!-- com.microsoft.playwright.TimeoutError -->
+          <reporter-output>
+          </reporter-output>
+        </test-method> <!-- verifyApplyAttendanceLandingPage -->
+        <test-method signature="verifyAttendanceCalendarLandingPage()[pri:0, instance:com.playwrightdemo.test.AttendancePageTest@531c311e]" started-at="2024-06-12T22:32:58 IST" name="verifyAttendanceCalendarLandingPage" finished-at="2024-06-12T22:32:58 IST" duration-ms="0" status="SKIP">
+          <exception class="com.microsoft.playwright.TimeoutError">
+            <message>
+              <![CDATA[Error {
+  message='Timeout 30000ms exceeded.
+  name='TimeoutError
+  stack='TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to "https://excellence.ishir.com/", waiting until "load"
+]]>
+            </message>
+            <full-stacktrace>
+              <![CDATA[com.microsoft.playwright.TimeoutError: Error {
+  message='Timeout 30000ms exceeded.
+  name='TimeoutError
+  stack='TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to "https://excellence.ishir.com/", waiting until "load"
+
+at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+at com.microsoft.playwright.Page.navigate(Page.java:5354)
+at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
+at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:71)
+at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:400)
+at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:333)
+at org.testng.SuiteRunner.privateRun(SuiteRunner.java:358)
+at org.testng.SuiteRunner.run(SuiteRunner.java:312)
+at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
+at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
+at org.testng.TestNG.runSuites(TestNG.java:1112)
+at org.testng.TestNG.run(TestNG.java:1079)
+at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:77)
+at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:159)
+at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:99)
+at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:106)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
+at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
+at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
+at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
+at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message='Timeout 30000ms exceeded.
+  name='TimeoutError
+  stack='TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to "https://excellence.ishir.com/", waiting until "load"
+
+at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+... 41 more
+]]>
+            </full-stacktrace>
+          </exception> <!-- com.microsoft.playwright.TimeoutError -->
+          <reporter-output>
+          </reporter-output>
+        </test-method> <!-- verifyAttendanceCalendarLandingPage -->
+        <test-method signature="verifyAttendanceClick()[pri:0, instance:com.playwrightdemo.test.AttendancePageTest@531c311e]" started-at="2024-06-12T22:32:58 IST" name="verifyAttendanceClick" finished-at="2024-06-12T22:32:58 IST" duration-ms="0" status="SKIP">
+          <exception class="com.microsoft.playwright.TimeoutError">
+            <message>
+              <![CDATA[Error {
+  message='Timeout 30000ms exceeded.
+  name='TimeoutError
+  stack='TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to "https://excellence.ishir.com/", waiting until "load"
+]]>
+            </message>
+            <full-stacktrace>
+              <![CDATA[com.microsoft.playwright.TimeoutError: Error {
+  message='Timeout 30000ms exceeded.
+  name='TimeoutError
+  stack='TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to "https://excellence.ishir.com/", waiting until "load"
+
+at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:52)
+at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
+at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:130)
+at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
+at com.microsoft.playwright.impl.FrameImpl.navigateImpl(FrameImpl.java:463)
+at com.microsoft.playwright.impl.PageImpl.lambda$navigate$46(PageImpl.java:870)
+at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
+at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
+at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:870)
+at com.microsoft.playwright.impl.PageImpl.navigate(PageImpl.java:42)
+at com.microsoft.playwright.Page.navigate(Page.java:5354)
+at com.playwrightdemo.utils.PlayWrightBrowserFactory.init_Browser(PlayWrightBrowserFactory.java:43)
+at com.playwrightdemo.Base.TestBase.intialization(TestBase.java:19)
+at com.playwrightdemo.test.BaseTest.setUP(BaseTest.java:27)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
+at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:71)
+at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:400)
+at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:333)
+at org.testng.SuiteRunner.privateRun(SuiteRunner.java:358)
+at org.testng.SuiteRunner.run(SuiteRunner.java:312)
+at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
+at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
+at org.testng.TestNG.runSuites(TestNG.java:1112)
+at org.testng.TestNG.run(TestNG.java:1079)
+at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:77)
+at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:159)
+at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:99)
+at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:106)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+at java.base/java.lang.reflect.Method.invoke(Method.java:566)
+at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
+at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
+at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
+at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
+at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
+Caused by: com.microsoft.playwright.TimeoutError: Error {
+  message='Timeout 30000ms exceeded.
+  name='TimeoutError
+  stack='TimeoutError: Timeout 30000ms exceeded.
+    at ProgressController.run (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\progress.js:78:26)
+    at Frame.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\frames.js:517:23)
+    at FrameDispatcher.goto (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\frameDispatcher.js:81:119)
+    at FrameDispatcher._handleCommand (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:94:40)
+    at DispatcherConnection.dispatch (C:\Users\admin\AppData\Local\Temp\playwright-java-8132070214033323764\package\lib\server\dispatchers\dispatcher.js:365:39)
+}
+Call log:
+- navigating to "https://excellence.ishir.com/", waiting until "load"
+
+at com.microsoft.playwright.impl.Connection.dispatch(Connection.java:254)
+at com.microsoft.playwright.impl.Connection.processOneMessage(Connection.java:211)
+at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:118)
+... 41 more
+]]>
+            </full-stacktrace>
+          </exception> <!-- com.microsoft.playwright.TimeoutError -->
+          <reporter-output>
+          </reporter-output>
+        </test-method> <!-- verifyAttendanceClick -->
+      </class> <!-- com.playwrightdemo.test.AttendancePageTest -->
+    </test> <!-- Command line test -->
+  </suite> <!-- Command line suite -->
+</testng-results>

+ 31 - 0
target/test-classes/com/playwright/testrunner/testng.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
+<suite name="Tdd-TestNG-Framework">
+
+    <listeners>
+        <listener class-name="com.playwrightdemo.listeners.ExtentReportListeners"/>
+    </listeners>
+
+
+
+    <test name="LeavesPageTest" preserve-order="true">
+    <classes>
+        <class name="com.playwrightdemo.test.LeavesPageTest">
+
+        </class>
+
+    </classes>
+
+    </test>
+
+    <test name="WorklogPageTest" preserve-order="true">
+        <classes>
+            <class name="com.playwrightdemo.test.WorklogPageTest">
+
+            </class>
+
+        </classes>
+
+    </test>
+
+</suite>

BIN
target/test-classes/com/playwrightdemo/test/AttendancePageTest.class


BIN
target/test-classes/com/playwrightdemo/test/BaseTest.class


BIN
target/test-classes/com/playwrightdemo/test/DashboardPageTest.class


BIN
target/test-classes/com/playwrightdemo/test/LeavesPageTest.class


BIN
target/test-classes/com/playwrightdemo/test/LoginPageTest.class


BIN
target/test-classes/com/playwrightdemo/test/WorklogPageTest.class


+ 9 - 0
target/test-classes/config.properties

@@ -0,0 +1,9 @@
+browser=chromium
+headlessAttribute=false
+URL=https://excellence.ishir.com/
+username=ankit@eno8.com
+password=@This4now
+Email_UserName = officeinstallation@ishir.com
+Email_Password = Roj88981
+Email_SMTPHostName = smtp-mail.outlook.com
+Email_PortNumber = 587

+ 42 - 0
target/test-classes/extent-config.xml

@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<extentreports>
+    <configuration>
+        <!-- report theme -->
+        <!-- standard, dark -->
+        <theme>dark</theme>
+
+        <!-- document encoding -->
+        <!-- defaults to UTF-8 -->
+        <encoding>UTF-8</encoding>
+
+        <!-- protocol for script and stylesheets -->
+        <!-- defaults to https -->
+        <protocol>https</protocol>
+
+        <!-- title of the document -->
+        <documentTitle>Extent</documentTitle>
+
+        <!-- report name - displayed at top-nav -->
+        <reportName>Automation Report</reportName>
+
+        <!-- location of charts in the test view -->
+        <!-- top, bottom -->
+        <testViewChartLocation>bottom</testViewChartLocation>
+
+        <!-- custom javascript -->
+        <scripts>
+            <![CDATA[
+                $(document).ready(function() {
+
+                });
+            ]]>
+        </scripts>
+
+        <!-- custom styles -->
+        <styles>
+            <![CDATA[
+
+            ]]>
+        </styles>
+    </configuration>
+</extentreports>

+ 20 - 0
target/test-classes/extent.properties

@@ -0,0 +1,20 @@
+extent.reporter.spark.start=true
+extent.reporter.spark.out=htmlReport/automation-report.html
+extent.reporter.spark.config=src/test/resources/extent-config.xml
+basefolder.name=reports/SparkReport
+basefolder.datetimepattern=d-MMM-YY HH-mm-ss
+extent.reporter.spark.vieworder=dashboard,test,exception,author,device,log
+extent.reporter.pdf.start=true
+extent.reporter.pdf.out=PDFReport/ExtendPDF.pdf
+screenshot.dir=/Screenshots/
+screenshot.rel.path=../Screenshots/
+systeminfo.user=admin
+systeminfo.build=v1.01
+systeminfo.AppName=QA-Truvelop
+
+
+
+
+
+
+

+ 40 - 0
target/test-classes/log4j2.properties

@@ -0,0 +1,40 @@
+#Declare loggers
+status=error
+name=Log4j2PropertiesConfig
+appenders=a_console, a_rolling
+rootLogger.level=info
+rootLogger.appenderRefs=ar_console,ar_rolling
+rootLogger.appenderRef.ar_console.ref=StdoutAppender
+rootLogger.appenderRef.ar_rolling.ref=RollingAppender
+#Console Logger
+appender.a_console.type=Console
+appender.a_console.name=StdoutAppender
+appender.a_console.layout.type=PatternLayout
+appender.a_console.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
+#Rolling Logger
+appender.a_rolling.type=RollingFile
+appender.a_rolling.name=RollingAppender
+appender.a_rolling.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
+appender.a_rolling.fileName=log4j2/log4j2-test-automation.log
+appender.a_rolling.filePattern=log4j2-sample-%d{yyyy-MM-dd}.log
+appender.a_rolling.layout.type=PatternLayout
+appender.a_rolling.policies.type=Policies
+appender.a_rolling.policies.time.type=TimeBasedTriggeringPolicy
+appender.a_rolling.policies.time.interval=1
+# To change log file every day
+appender.a_rolling.policies.time.modulate=true
+# To change log file after 10MB size
+appender.a_rolling.policies.size.type=SizeBasedTriggeringPolicy
+appender.a_rolling.policies.size.size=10MB
+appender.a_rolling.strategy.type=DefaultRolloverStrategy
+appender.a_rolling.strategy.max=20
+
+
+
+
+
+
+
+
+
+

Some files were not shown because too many files changed in this diff