UIlicious Documentation
website·Indexed 33 days ago
https://docs.uilicious.com/scripting/Documentation for UIlicious v3, a test automation platform. Includes reference guides for the Test Engine, Studio, and Web Studio, covering commands for page element validation (I.getCount, I.getText, I.getValue), browser interactions, HTTP requests, and integrations with Salesforce and Applitools Eyes.
What's inside UIlicious
- TAMI Studio provides a scalable cloud testing grid that allows teams to execute automated tests across various browsers, regions, and configurations without maintaining local infrastructure. Key benefits include zero setup, high scalability for parallel test execution, and consistent environments to reduce flakiness.
Overview of handling downloaded files in UIlicious
v3UIlicious supports managing downloaded files for Chrome, Firefox, and Edge Chromium. During test execution, files are saved to a virtual "Downloads" folder. Files are named by the application server; users cannot rename them during the download process. For large files, it is recommended to useI.waitbefore attempting to access or validate the files.Overview of UIlicious automation
v3UIlicious is a tool for automating interactions with modern web applications to test critical user flows (e.g., account registration or checkout) and ensure users do not encounter unexpected errors. It is compatible with any front-end framework, including ReactJS, AngularJS, VueJS, Polymer, and VanillaJS.Overview of TAMI AI capabilities in TAMI Studio
TAMI (Test Automation Machine Intelligence) is an AI assistant integrated into TAMI Studio that converts natural language, screenshots, and screen recordings into automated UI test cases. It supports the following tasks across the testing lifecycle:
- Test Planning: Analyzes screenshots or recordings of app workflows to suggest happy flows and edge cases.
- Test Case Description: Generates detailed test steps from visual inputs for scenario documentation.
- Script Generation: Converts described test steps into executable automated test scripts.
- Test Maintenance: Diagnoses test failures and suggests fixes for missing or outdated steps.
- Bug Reporting: Creates detailed bug reports based on failed tests to streamline developer troubleshooting.
Overview of TAMI Studio
TAMI Studio is an AI-powered platform designed for planning, managing, and automating UI tests. It is intended for QA, Product Managers, and developers, allowing teams to automate UI testing without requiring deep coding expertise. Key capabilities include organizing test cases by feature, writing reliable end-to-end automated scripts, executing cross-browser tests at scale, and scheduling test runs with integrated notifications.Overview of the UI-licious Test Framework
UI-licious is an intuitive test automation framework designed to simulate real-world user interactions by focusing on 'User Journeys, not HTML'. It allows users to write tests in plain, natural language, abstracting away technical selectors to make tests accessible to QA engineers, developers, and non-technical stakeholders.I.goTo("https://github.com/login") I.fill("Username or email address", "<username>") I.fill("Password", "<password>") I.click("Sign in") I.see("My repositories")Automate MetaMask interactions with UIlicious
v3UIlicious is a low-code browser testing tool designed to simplify Web3 automation. It provides a Chrome browser environment that comes with a fresh installation of the MetaMask extension for every test run. This eliminates the manual setup of the wallet and network, allowing configuration to be handled via a built-in MetaMask plugin using a few lines of code.Ensure reliable cross-browser test execution in UIlicious
v3UIlicious eliminates the need for browser-specific workarounds by engineering commands to behave consistently across different browser engines. This prevents false alerts caused by WebDriver quirks (e.g., differences in how Safari vs. Chrome executes a command), ensuring that a test failure is likely due to an application bug rather than a browser-specific automation issue.Execute tests in parallel using TAMI Studio Cloud Testing Grid
TAMI Studio enables parallel test execution via the Cloud Testing Grid. Test runs can be triggered manually from the Test Case Editor, through scheduled Jobs, or via the CLI. Each workspace has a fixed number of shared test runners; if all runners are occupied, new tests are placed in a queue and executed as runners become available.Understand how browser alerts affect UILicious execution
Browser alerts are native dialog boxes that block JavaScript execution and prevent user interaction with the web page. While an alert is open, any page interaction commands (such asI.see()orI.click()) will fail with a "Command blocked by alert" error until the alert is dismissed.Retrieve information about downloaded files using UI.Downloads.files
Use the read-only property
UI.Downloads.filesor the methodUI.Downloads.listFiles()to get a list of files downloaded during a test. The results are returned as an array of objects in the order they were downloaded. The array includes.firstand.lastconvenience getters to quickly access the metadata of the first and last downloaded files.Each file object contains:
name(string): Name of the downloaded file.path(string): Path where the file is stored in the virtual directory.lastModified(number): Creation time in epoch seconds.size(number): File size in bytes.
// Access via property var files = UI.Downloads.files; // Access via method var files = UI.Downloads.listFiles(); // Access the last downloaded file specifically var lastFile = UI.Downloads.files.last;Understand automatic screenshot behavior in UI-licious
UI-licious automatically captures screenshots at every command to provide visual evidence of the application state and simplify debugging.
- General behavior: Screenshots are typically taken after a command to show the resulting state.
- Exception (
I.click()): For theI.click()command, the screenshot is taken before the click to highlight the target element. To capture the state after a click, follow the command with a non-interactive command likeI.wait()orTEST.log.info().
I.click("Login") I.wait(1) // Captures screenshot after waiting TEST.log.info("User is logged in") // Captures screenshot with a custom message