Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
101 changes: 101 additions & 0 deletions docs/kane-ai-deeplink-support.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
---
id: kane-ai-deeplink-support
title: Deeplinks Support for Mobile App Authoring
hide_title: false
sidebar_label: Deeplinks
description: Learn how to use deeplinks in KaneAI to directly navigate to specific screens in your Android and iOS mobile applications during test authoring.
keywords:
- lambdatest automation
- lambdatest kaneai
- kaneai deeplink
- mobile app testing
- deeplink navigation
- android deeplink
- ios deeplink
url: https://www.lambdatest.com/support/docs/kane-ai-deeplink-support/
site_name: LambdaTest
slug: kane-ai-deeplink-support/
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

## What are Deeplinks?

Deeplinks are URL-based mechanisms that allow you to directly access specific screens and functionalities within your mobile application, bypassing standard navigation flows. In the context of mobile app testing with KaneAI, deeplinks enable testers to quickly navigate to targeted screens and perform context-aware actions without manually navigating through the app interface.

## How Deeplinks Work in KaneAI

When you use deeplinks in KaneAI during mobile app test authoring, the system:

1. Accepts a deeplink URL from the user
2. Identifies the target application package (Android) or bundle ID (iOS)
3. Invokes the deeplink within the active app session
4. Navigates directly to the specified screen or performs the defined action

KaneAI automatically pre-fills the application package or bundle ID based on the app currently installed in your test session, making the process seamless and intuitive.


## Adding Deeplinks in KaneAI

### Step 1: Access the Deeplink Feature

During your mobile app test authoring session in KaneAI, you can add a deeplink instruction using the following method:

- Type a **slash (/)** in the input box and select the **Deeplink** option from the menu

<img loading="lazy" src={require('../assets/images/kane-ai/features/add-deeplink-modal.png').default} alt="Add Deeplink Modal" className="doc_img"/>

### Step 2: Configure Deeplink Parameters

Once the deeplink modal appears, provide the following information:

1. **URL*** (Required)
- Enter the complete deeplink URL
- Example: `kaneai://settings` or `myapp://product/123`

2. **App package for target*** (Required)
- For **Android**: Enter the application package name (e.g., `com.example.QAapp`)
- For **iOS**: Enter the bundle ID (e.g., `com.example.QAapp`)
- KaneAI automatically pre-fills this field with the currently installed app's package or bundle ID

### Step 3: Add to Test Steps

Click the **Add in steps** button to include the deeplink instruction in your test case. KaneAI will execute this step during test runs, invoking the specified deeplink within your target application.


## Best Practices

1. **Verify Deeplink Support:** Ensure your mobile application has proper deeplink handling implemented before using this feature in tests.

2. **Test Deeplink Validity:** Manually verify deeplinks work correctly in your app before adding them to automated test cases.

3. **Handle Edge Cases:** Consider scenarios where deeplinks might fail (e.g., user not logged in, invalid parameters) and add appropriate assertions.

4. **Combine with Assertions:** After invoking a deeplink, add assertion steps to verify the correct screen was loaded and displays expected content.


## Troubleshooting

### Deeplink Not Working

- Verify the deeplink URL format is correct
- Ensure the target app package/bundle ID matches the installed application
- Check if the app has proper deeplink handling configured
- Confirm the app is already running in the test session

### Wrong Screen Opens

- Double-check the deeplink path and parameters
- Verify your app's deeplink routing configuration
- Ensure no conflicting deeplink schemes exist

### App Crashes on Deeplink

- Validate the deeplink with your development team
- Check if required data or permissions are available
- Review app logs for specific error messages

---

> **Need Help?** If you have questions about deeplink implementation or encounter issues, contact our <span className="doc__lt" onClick={() => window.openLTChatWidget()}>support team</span> for assistance.
126 changes: 126 additions & 0 deletions docs/kane-ai-drag-drop.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
---
id: kane-ai-drag-drop
title: Drag and Drop for Web applications
hide_title: false
sidebar_label: Drag and Drop
description: Learn how to test drag and drop interactions in KaneAI using natural language commands and manual recording for complex web interactions.
keywords:
- lambdatest automation
- lambdatest kaneai
- kaneai drag drop
- drag and drop testing
- click and drag
url: https://www.lambdatest.com/support/docs/kane-ai-drag-drop/
site_name: LambdaTest
slug: kane-ai-drag-drop/
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import CodeBlock from '@theme/CodeBlock';
import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/component/keys";

A wide range of applications incorporate drag and drop features, enabling users to reorganize and position elements within the interface. KaneAI now supports **drag and drop** and **click and drag** interactions in web applications on Desktop, enabling you to test complex UI interactions like moving items between containers, adjusting sliders, resizing elements, and working with flow charts. This feature provides two methods for capturing these interactions: natural language commands and manual recording.

## Supported Interaction Types

### Drag and Drop (Natural Language)
Use natural language commands to move elements between defined drop zones. This method is ideal for straightforward drag and drop operations where both the source and target elements are clearly visible. This is not ideal in case the source or the target elements are not clearly visible.

**Examples:**
- `Drag item 4 from source items to drop target`
- `Drag and drop product card from available items to shopping cart`
- `Move file from folder A to folder B`

:::tip
Natural language drag and drop works best when:
- Drop zones are explicitly defined and visible
- You're moving items between containers
- The target location is static (not dynamically generated)
:::

### Click and Drag (Manual Interaction)
Record click and drag actions manually during test authoring. This method provides precise control for complex interactions like sliders, resizing, and canvas operations.

**Use Cases:**
- Adjusting slider values
- Resizing elements
- Moving elements in flow charts
- Dragging within canvas or drawing areas

:::tip
Manual recording is recommended for:
- Slider adjustments
- Element resizing
- Flow chart interactions
- Any scenario where drop locations aren't explicitly defined
:::

## Supported Scenarios

### ✅ What Works
- **Drag and Drop (Natural Language)**
- Moving items between visible containers
- Transferring elements to defined drop zones
- Simple drag operations within the same page context
- Kanban board card movements
- File upload via drag and drop
- **Click and Drag (Manual Interaction)**
- All drag scenarios - works reliably in any case
- Slider value adjustments
- Resizing elements and panels
- Drawing and canvas interactions
- Flow chart and diagram manipulation
- List item reordering
- Precise positioning of elements

### ⚠️ Limitations

#### Natural Language Limitations
- **List reordering** - Cannot reorder list items using natural language
- **Pixel-based commands** - Cannot specify exact pixel offsets (e.g., "drag 50px right")
- **Dynamic targets** - Cannot drag to targets that appear only during drag
- **Undefined drop zones** - May not work if drop locations aren't explicitly defined

#### General Limitations
- **Cross-context dragging** - Cannot drag between iframes or shadow DOMs
- **Multi-element dragging** - Cannot drag multiple elements simultaneously
- **Mobile drag and drop** - Not supported on mobile devices
- **Editing restrictions** - Click and drag instructions cannot be edited after recording

### When to Use Each Method

| Scenario | Natural Language | Manual Interaction |
|----------|-----------------|------------------|
| Container to container transfer | ✅ Recommended | ✅ Works |
| Slider adjustments | ❌ Not supported | ✅ Recommended |
| Element resizing | ❌ Not supported | ✅ Recommended |
| List reordering | ❌ Not supported | ✅ Recommended |
| Flow charts | ❌ Limited | ✅ Recommended |
| Kanban boards | ✅ Recommended | ✅ Works |
| Canvas drawing | ❌ Limited | ✅ Recommended |


## Example Use Cases

### E-commerce Product Sorting
```
Drag product "iPhone 15" from available items to comparison table
```

### Project Management Board
```
Move task card from "To Do" column to "In Progress" column
```

### Form Builder
Use manual interaction to:
- Drag form fields from palette to canvas
- Resize input fields
- Reorder form sections

### Data Visualization Dashboard
Use manual interaction to:
- Adjust date range sliders
- Resize chart panels
- Rearrange dashboard widgets
63 changes: 41 additions & 22 deletions sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -1284,6 +1284,7 @@ module.exports = {
"kaneai-hyperexecute-test-run-execution",
"kaneai-ci-cd-automation",
"test-runs-configurations",
"kaneai-scheduled-test-runs",
],
},
{
Expand All @@ -1307,30 +1308,48 @@ module.exports = {
collapsed: true,
label: "Features",
items: [
"kaneai-manual-interaction",
"kane-ai-javascript-execution",
"kane-ai-geolocation-tunnel-proxy",
"kaneai-auto-heal",
"kane-ai-scroll-in-feature",
"kane-ai-jira-integration",
"kane-ai-api-testing",
"kane-ai-network-assertions",
"kane-ai-mobile-app-capabilities",
"kaneai-network-throttling",
"kane-ai-modules",
"kaneai-modules-versions-and-enhancement",
"kaneai-upload-and-download-files",
"kaneai-dynamic-url-replacement",
"kaneai-chrome-options",
"kaneai-custom-headers",
"kaneai-totp",
"kaneai-scheduled-test-runs",
{
type: "doc",
label: "Visual Testing",
id: "kaneai-smartui-visual-testing",
type: "category",
collapsed: true,
label: "Common",
items: [
"kaneai-manual-interaction",
"kane-ai-javascript-execution",
"kane-ai-geolocation-tunnel-proxy",
"kaneai-auto-heal",
"kane-ai-scroll-in-feature",
"kane-ai-jira-integration",
"kane-ai-api-testing",
"kane-ai-modules",
"kaneai-modules-versions-and-enhancement",
"kaneai-upload-and-download-files",
"kaneai-totp",
"kaneai-database",
],
},
{
type: "category",
collapsed: true,
label: "Desktop Browser",
items: [
"kane-ai-network-assertions",
"kane-ai-drag-drop",
"kaneai-dynamic-url-replacement",
"kaneai-chrome-options",
"kaneai-custom-headers",
"kaneai-smartui-visual-testing",
],
},
{
type: "category",
collapsed: true,
label: "Mobile",
items: [
"kane-ai-mobile-app-capabilities",
"kane-ai-deeplink-support",
"kaneai-network-throttling",
],
},
"kaneai-database",
],
},
{
Expand Down
Loading