Hi Vanshu, Thanks for starting this thread!
I would also like to bring Playwright into the discussion - https://playwright.dev/ and https://github.com/microsoft/playwright * Playwright has gained a lot of traction over the last few years and is a modern tool for UI automation of web apps. It is backed by Microsoft and has a fairly regular release cadence * Supports APIs in Node.js, Java, Python, .NET * Browser support includes Chromium, Firefox, WebKit (Safari), Chrome and Edge * Supports headless and headed modes on all browsers and platforms: Windows, Linux, Mac * It can hook easily with Test Runners like JUnit, TestNG, thereby enabling features of test runners like Before/After annotations, parallel tests, ability to rerun failed tests * Provides debugging capabilities such as traceviewer to check sequence of test actions, state of the page before and after the action Thanks, Vivek Sharma On 14/07/23, 1:52 PM, "Hassija, Vanshu" <vhass...@visa.com.inva <mailto:vhass...@visa.com.inva>LID> wrote: Hello all, During our ongoing efforts to upgrade libraries to their latest versions, we have discovered that ambari-web currently relies on PhantomJS as the testing framework. However, we have encountered a significant issue: PhantomJS has been deprecated, and the last available version lacks support for ES6 features. As this package is no longer maintained, it is unlikely to receive future updates that introduce new JavaScript functionalities. To address this concern, we have evaluated various alternatives and have determined that transitioning from PhantomJS to Puppeteer would be the most beneficial course of action. * Puppeteer is a powerful Node.js library developed by the Chrome team at Google. It offers a high-level API for automating headless Chrome or Chromium instances, enabling seamless interaction with web pages, automated testing, and data scraping. * By embracing Puppeteer, we can leverage a modern and actively maintained tool that fully supports ES6 and provides a wide range of features. * Some notable advantages include: Full ES6 Support: Puppeteer enables the use of the latest JavaScript updates, ensuring compatibility with future updates and language enhancements. Robust Feature Set: Puppeteer offers powerful debugging capabilities, screenshot generation, and PDF rendering, making it a versatile choice for web automation tasks. Extensive Documentation and Community Support: Puppeteer benefits from comprehensive documentation and a thriving community, providing reliable resources and assistance for developers. While Puppeteer offers numerous benefits, we also want to address some potential challenges and limitations associated with it: * Increased Code Complexity: Transitioning to Puppeteer may require significant code changes and a learning curve for developers unfamiliar with the library. * Performance Impact: Running Puppeteer tests can be resource-intensive and may have an impact on overall test execution time. On the other hand, we have also considered another popular testing framework called Cypress, which offers the following advantages: * Simplified API: Cypress provides a clean and intuitive API that simplifies test creation and maintenance. * Real-Time Reloads: Cypress offers real-time reloads while editing tests, making the development and debugging process more efficient. However, based on our experimentation and evaluation, we have found Puppeteer to be particularly well-suited for our requirements and the future of ambari-web. To ensure we make an informed decision, we welcome your input and suggestions. If you have any alternative frameworks in mind or insights about Puppeteer, Cypress, or any other relevant tools, please feel free to share them with us. We value your expertise and contributions to the open source community. Thanks Vanshu Hassija