Using Appium for Testing Web Applications

Using Appium for Testing Web Applications

10 November 2024 Stephan Petzl Leave a comment Tech-Help

When it comes to testing web applications on mobile devices, many developers consider using Appium. Although Appium is primarily known as a test automation framework for native and hybrid mobile apps, it can also be utilized for testing web applications. However, there are some nuances and limitations to be aware of.

Types of Web Applications and Appium’s Compatibility

Web applications can generally be categorized into three types:

  • Native applications: These can be tested with Appium effectively.
  • Hybrid applications: These require a context switch to webview mode for testing with Appium.
  • Web apps: These are accessed via a browser on a mobile device and can also be tested with Appium.

For more detailed information, you can refer to the official documentation available on Appium’s website.

Challenges and Considerations

While Appium supports testing web applications, there are several challenges that testers might face:

  • Touch actions: Appium’s support for touch actions in mobile web apps can be limited. For instance, in a Java context, using Selenium’s RemoteWebDriver and RemoteTouchScreen can help, but it may not be fully supported across all devices.
  • Context switching: To perform certain actions, such as touch interactions, you might need to switch the context from CHROMIUM to NATIVE_APP, which can complicate the test setup.
  • Element selection: The ability to select elements using different locators (e.g., By.id, By.xpath) may be restricted, especially in the NATIVE_APP context.

Practical Example

Suppose you are testing a web application on an Android device. You can use the following approach to perform touch actions:

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "Samsung Android S8");
capabilities.setCapability("browserName", "Chrome");
capabilities.setCapability("platformName", "Android");
MobileDriver appiumDriver = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

appiumDriver.navigate().to("https://example.com");

try {
    appiumDriver.context("NATIVE_APP");
    new TouchAction(appiumDriver).tap(appiumDriver.findElement(By.id("element_id"))).perform();
} finally {
    appiumDriver.context("CHROMIUM");
}

This code snippet demonstrates how to navigate to a web page and perform a tap action on an element by switching to the native app context temporarily.

Enhancing Test Automation with Repeato

While Appium is a robust tool for mobile app testing, it can sometimes be slow and cumbersome, especially when dealing with complex touch actions. This is where Repeato comes into play. As a no-code test automation tool for iOS and Android, Repeato offers a faster and more stable testing experience. Leveraging computer vision and AI, Repeato allows you to create, run, and maintain automated tests more efficiently.

If you’re looking for a solution that simplifies mobile web application testing while ensuring speed and reliability, consider exploring Repeato as an alternative to Appium.

For more insights and guides on mobile app testing, visit our blog.

Like this article? there’s more where that came from!