Skip to content

Commit 9ae31de

Browse files
RushilK7Ishavyas9
authored andcommitted
appium doc fix
1 parent 9dc46d9 commit 9ae31de

File tree

1 file changed

+160
-8
lines changed

1 file changed

+160
-8
lines changed

docs/smartui-appium-sdk.md

Lines changed: 160 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
---
22
id: smartui-appium-sdk
3-
title: Integrate SmartUI SDK with Appium Tests
3+
title: Integrate SmartUI with Appium Tests
44
sidebar_label: Appium
5-
description: In this documentation, learn how integrate your Appium automated tests with LambdaTest's SmartUI.
5+
description: Learn how to integrate your Appium automated tests with LambdaTest's SmartUI. Java uses both SDK and hooks integration, while JavaScript, Python, Ruby, and C# use Hooks integration.
66
keywords:
77
- Visual Regression
88
- Visual Regression Testing Guide
@@ -48,41 +48,46 @@ import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/co
4848
></script>
4949
Appium is an open-source tool for automating mobile application testing. It allows developers and testers to write tests for native, hybrid, and mobile web applications across multiple platforms, such as iOS and Android, using a single codebase.
5050

51-
The LambdaTest SmartUI SDK supports multiple programming languages for running Appium automation tests on mobile browsers. <br /> Below is the list of supported languages:
51+
LambdaTest SmartUI supports Appium automation tests for mobile applications through two integration methods:
52+
53+
- **SDK Integration**: Available for Java
54+
- **Hooks Integration**: Available for JavaScript, Python, Ruby, and C#
55+
56+
Below is the list of supported languages and their integration methods:
5257

5358
<div className='lt_row lt_framework_list_row'>
5459
<div className='lt_col lt_framework_wrapper'>
5560
<img loading="lazy" src={require('../assets/images/getting-started/java-icon.webp').default} alt="Java" width="200" height="200" className='language-icon no-zoom'/>
5661
<ul className='lt_framework_list'>
57-
<li><a href="/support/docs/smartui-appium-java-sdk/" target="_blank" style={{color: '#0a69da', textDecoration: 'underline'}} >Java</a></li>
62+
<li><a href="/support/docs/smartui-appium-java-sdk/" target="_blank" style={{color: '#0a69da', textDecoration: 'underline'}} >Java SDK</a></li>
5863
</ul>
5964
</div>
6065

6166
<div className='lt_col lt_framework_wrapper'>
6267
<img loading="lazy" src={require('../assets/images/getting-started/color-js.webp').default} alt="Javascript" width="181" height="200" className='language-icon no-zoom'/>
6368
<ul className='lt_framework_list'>
64-
<li><a href="/support/docs/smartui-appium-hooks/" target="_blank" style={{color: '#0a69da', textDecoration: 'underline'}}>JavaScript</a></li>
69+
<li><a href="/support/docs/smartui-appium-hooks/" target="_blank" style={{color: '#0a69da', textDecoration: 'underline'}}>JavaScript Hooks</a></li>
6570
</ul>
6671
</div>
6772

6873
<div className='lt_col lt_framework_wrapper'>
6974
<img loading="lazy" src={require('../assets/images/getting-started/python-icon.webp').default} alt="Python" width="200" height="200" className='language-icon no-zoom'/>
7075
<ul className='lt_framework_list'>
71-
<li><a href="/support/docs/smartui-appium-hooks/" target="_blank" style={{color: '#0a69da', textDecoration: 'underline'}}>Python</a></li>
76+
<li><a href="/support/docs/smartui-appium-hooks/" target="_blank" style={{color: '#0a69da', textDecoration: 'underline'}}>Python Hooks</a></li>
7277
</ul>
7378
</div>
7479

7580
<div className='lt_col lt_framework_wrapper'>
7681
<img loading="lazy" src={require('../assets/images/getting-started/ruby-icon.webp').default} alt="Ruby" width="200" height="200" className='language-icon no-zoom'/>
7782
<ul className='lt_framework_list'>
78-
<li><a href="/support/docs/smartui-appium-hooks/" target="_blank" style={{color: '#0a69da', textDecoration: 'underline'}}>Ruby</a></li>
83+
<li><a href="/support/docs/smartui-appium-hooks/" target="_blank" style={{color: '#0a69da', textDecoration: 'underline'}}>Ruby Hooks</a></li>
7984
</ul>
8085
</div>
8186

8287
<div className='lt_col lt_framework_wrapper'>
8388
<img loading="lazy" src={require('../assets/images/getting-started/c-sharp-icon.webp').default} alt="C#" width="200" height="200" className='language-icon no-zoom'/>
8489
<ul className='lt_framework_list'>
85-
<li><a href="/support/docs/smartui-appium-hooks/" target="_blank" style={{color: '#0a69da', textDecoration: 'underline'}}>C#</a></li>
90+
<li><a href="/support/docs/smartui-appium-hooks/" target="_blank" style={{color: '#0a69da', textDecoration: 'underline'}}>C# Hooks</a></li>
8691
</ul>
8792
</div>
8893
</div>
@@ -91,6 +96,153 @@ The LambdaTest SmartUI SDK supports multiple programming languages for running A
9196
<p>We support all languages and frameworks that are compatible with Appium, so in case your favorite isn't in the table.<br/>Don't worry, you can still run the test. <span className='doc__lt' onClick={() => window.openLTChatWidget()}>Contact Us</span> for any help.</p>
9297
</div>
9398

99+
## Integration Methods
100+
101+
### SDK Integration (Java)
102+
103+
The SmartUI App SDK provides a native Java library for integrating visual regression testing into your Appium Java test suite. This method offers:
104+
105+
- Native Java API for screenshot capture
106+
- Type-safe integration with your existing test framework
107+
- Comprehensive error handling and logging
108+
109+
**Documentation**: [Appium Java SDK](/support/docs/smartui-appium-java-sdk) - Complete guide with best practices and troubleshooting
110+
111+
### Hooks Integration (JavaScript, Python, Ruby, C#)
112+
113+
For languages other than Java, SmartUI uses Hooks integration, which leverages Appium's execute command to capture screenshots. This method:
114+
115+
- Works with any Appium-compatible language
116+
- Uses simple execute commands for screenshot capture
117+
- Supports both viewport and full-page screenshots
118+
119+
**Documentation**: [Appium Hooks](/support/docs/smartui-appium-hooks) - Complete guide for JavaScript, Python, Ruby, and C# implementations
120+
121+
#### Quick Start with Hooks
122+
123+
**Prerequisites:**
124+
- Appium driver instance initialized
125+
- SmartUI project created with Project Token
126+
- LambdaTest credentials configured
127+
128+
**Taking Viewport Screenshots:**
129+
130+
Add the following code snippet in your test where you want to capture a screenshot:
131+
132+
<Tabs className='docs__val' groupId='hooks-language'>
133+
<TabItem value='javascript' label='JavaScript' default>
134+
135+
```javascript
136+
driver.execute("smartui.takeScreenshot=<Name of your screenshot>");
137+
```
138+
139+
</TabItem>
140+
<TabItem value='python' label='Python'>
141+
142+
```python
143+
driver.execute("smartui.takeScreenshot=<Your Screenshot Name>")
144+
```
145+
146+
</TabItem>
147+
<TabItem value='ruby' label='Ruby'>
148+
149+
```ruby
150+
driver.execute("smartui.takeScreenshot=<Your Screenshot Name>")
151+
```
152+
153+
</TabItem>
154+
<TabItem value='csharp' label='C#'>
155+
156+
```csharp
157+
driver.Execute("smartui.takeScreenshot=<Your Screenshot Name>");
158+
```
159+
160+
</TabItem>
161+
</Tabs>
162+
163+
**Taking Full Page Screenshots (Native Apps):**
164+
165+
For apps with scrolling functionality, you can capture full-page screenshots:
166+
167+
<Tabs className='docs__val' groupId='hooks-fullpage'>
168+
<TabItem value='javascript-full' label='JavaScript' default>
169+
170+
```javascript
171+
let config = {
172+
screenshotName: '<Name of your screenshot>',
173+
fullPage: true,
174+
pageCount: 15 // Minimum 1, Maximum 20
175+
};
176+
await driver.execute("smartui.takeScreenshot", config);
177+
```
178+
179+
</TabItem>
180+
<TabItem value='python-full' label='Python'>
181+
182+
```python
183+
config = {
184+
'screenshotName': '<Your Screenshot Name>',
185+
'fullPage': True,
186+
'pageCount': 15 # Minimum 1, Maximum 20
187+
}
188+
driver.execute("smartui.takeScreenshot", config)
189+
```
190+
191+
</TabItem>
192+
<TabItem value='ruby-full' label='Ruby'>
193+
194+
```ruby
195+
config = {
196+
'screenshotName' => '<Your Screenshot Name>',
197+
'fullPage' => true,
198+
'pageCount' => 15 # Minimum 1, Maximum 20
199+
}
200+
driver.execute("smartui.takeScreenshot", config)
201+
```
202+
203+
</TabItem>
204+
<TabItem value='csharp-full' label='C#'>
205+
206+
```csharp
207+
var config = new Dictionary<string, object> {
208+
{"screenshotName", "<Your Screenshot Name>"},
209+
{"fullPage", true},
210+
{"pageCount", 15} // Minimum 1, Maximum 20
211+
};
212+
driver.Execute("smartui.takeScreenshot", config);
213+
```
214+
215+
</TabItem>
216+
</Tabs>
217+
218+
**Configuration:**
219+
220+
Set your Project Token as an environment variable before running tests:
221+
222+
<Tabs className='docs__val' groupId='hooks-config'>
223+
<TabItem value='macos-linux' label='MacOS/Linux' default>
224+
225+
```bash
226+
export PROJECT_TOKEN="your_project_token"
227+
```
228+
229+
</TabItem>
230+
<TabItem value='windows' label='Windows - CMD'>
231+
232+
```bash
233+
set PROJECT_TOKEN=your_project_token
234+
```
235+
236+
</TabItem>
237+
<TabItem value='powershell' label='PowerShell'>
238+
239+
```powershell
240+
$env:PROJECT_TOKEN="your_project_token"
241+
```
242+
243+
</TabItem>
244+
</Tabs>
245+
94246
## Next Steps
95247

96248
After selecting your preferred language, refer to the specific documentation for detailed integration steps:

0 commit comments

Comments
 (0)