Below are the capabilities of Karate UI. Gives many reasons why one should go for Karate over Selenium.
- Simple, clean syntax that is well suited for people new to programming or test-automation
- All-in-one framework that includes parallel-execution, HTML reports, environment-switching, and CI integration
- Cross-platform – with even the option to run as a programming-language neutral stand-alone executable
- No need to learn complicated programming concepts such as “callbacks” “
await
” and “promises” - Option to use wildcard and “friendly” locators without needing to inspect the HTML-page source, CSS, or internal XPath structure
- Chrome-native automation using the Chrome DevTools Protocol (equivalent to Puppeteer)
- W3C WebDriver support built-in, which can also use remote / grid providers
- Cross-Browser support including Microsoft Edge on Windows and Safari on Mac
- Parallel execution on a single node, cloud-CI environment or Docker – without needing a “master node” or “grid”
- You can even run tests in parallel across different machines – and Karate will aggregate the results
- Embed video-recordings of tests into the HTML report from a Docker container
- Windows Desktop application automation using the Microsoft WinAppDriver
- Android and iOS mobile support via Appium
- Seamlessly mix API and UI tests within the same script, for example sign-in using an API and speed-up your tests
- Use the power of Karate’s
match
assertions and core capabilities for UI assertions - Simple retry and wait strategy, no need to graduate from any test-automation university to understand the difference between “implicit waits”, “explicit waits” and “fluent waits” 🙂
- Simpler, elegant, and DRY alternative to the so-called “Page Object Model” pattern
- Carefully designed fluent-API to handle common combinations such as a
submit()
+click()
action - Elegant syntax for typical web-automation challenges such as waiting for a page-load or element to appear
- Execute JavaScript in the browser with one-liners – for example to get data out of an HTML table
- Compose re-usable functions based on your specific environment or application needs
- Comprehensive support for user-input types including key-combinations and
mouse()
actions - Step-debug and even “go back in time” to edit and re-play steps – using the unique, innovative Karate Extension for Visual Studio Code
- Traceability: detailed wire-protocol logs can be enabled in-line with test-steps in the HTML report
- Convert HTML to PDF and capture the entire (scrollable) web-page as an image using the Chrome Java API
Reference: https://github.com/intuit/karate/tree/master/karate-core