Skip to content

Add mobile tap command#14012

Merged
christian-bromann merged 11 commits intomainfrom
ws/add-tap-command
Dec 27, 2024
Merged

Add mobile tap command#14012
christian-bromann merged 11 commits intomainfrom
ws/add-tap-command

Conversation

@wswebcreation
Copy link
Member

@wswebcreation wswebcreation commented Dec 26, 2024

Proposed changes

This PR will add the mobile tap command including

  • native tap on coordinates
  • web tap on coordinates
  • native tap on element + automatically scrolling when element is not visible on native tap
  • web tab on element
  • add unit tests
  • update docs
  • update template to not show usage option
  • update template to also support a rowInfo param which results in below

image

Usage

it('should be able to tap an on element', async () => {
    const elem = $('~myElement')
    // It will automatically scroll to the element if it's not already in the viewport
    await elem.tap()
})

it('should be able to swipe right 3 times in a custom scroll areas to an element and tap on the element', async () => {
    const elem = $('~myElement')
    // Swipe right 3 times in the custom scrollable element to find the element
    await elem.tap({
        direction: 'right',
        maxScrolls: 3,
        scrollableElement: $('#scrollable')
    })
})

it('should be able to tap on screen coordinates', async () => {
    await browser.tap({ x: 200, y: 400 })
})

Types of changes

  • Polish (an improvement for an existing feature)
  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update (improvements to the project's docs)
  • Specification changes (updates to WebDriver command specifications)
  • Internal updates (everything related to internal scripts, governance documentation and CI files)

Checklist

  • I have read the CONTRIBUTING doc
  • I have added tests that prove my fix is effective or that my feature works
  • I have added the necessary documentation (if appropriate)
  • I have added proper type definitions for new commands (if appropriate)

Backport Request

//: # (The current main branch is the development branch for WebdriverIO v9. If your change should be released to the current major version of WebdriverIO (v8), please raise another PR with the same changes against the v8 branch.)

  • This change is solely for v9 and doesn't need to be back-ported
  • Back-ported PR at #XXXXX

Further comments

Reviewers: @webdriverio/project-committers

- add native tap on coordinates
- add web tap on coordinates
- add native tap on element
- add web tab on element
- add automatically scrolling when element is not visible on native tap
- add first unit tests
@pkg-pr-new
Copy link

pkg-pr-new bot commented Dec 26, 2024

Open in Stackblitz

eslint-plugin-wdio

npm i https://pkg.pr.new/webdriverio/webdriverio/eslint-plugin-wdio@14012

@wdio/allure-reporter

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/allure-reporter@14012

@wdio/browser-runner

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/browser-runner@14012

@wdio/browserstack-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/browserstack-service@14012

@wdio/appium-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/appium-service@14012

@wdio/cli

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/cli@14012

@wdio/concise-reporter

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/concise-reporter@14012

@wdio/config

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/config@14012

@wdio/cucumber-framework

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/cucumber-framework@14012

@wdio/dot-reporter

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/dot-reporter@14012

@wdio/firefox-profile-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/firefox-profile-service@14012

@wdio/globals

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/globals@14012

@wdio/jasmine-framework

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/jasmine-framework@14012

@wdio/json-reporter

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/json-reporter@14012

@wdio/junit-reporter

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/junit-reporter@14012

@wdio/lighthouse-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/lighthouse-service@14012

@wdio/local-runner

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/local-runner@14012

@wdio/logger

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/logger@14012

@wdio/mocha-framework

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/mocha-framework@14012

@wdio/protocols

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/protocols@14012

@wdio/repl

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/repl@14012

@wdio/reporter

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/reporter@14012

@wdio/runner

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/runner@14012

@wdio/sauce-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/sauce-service@14012

@wdio/shared-store-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/shared-store-service@14012

@wdio/smoke-test-cjs-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/smoke-test-cjs-service@14012

@wdio/smoke-test-reporter

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/smoke-test-reporter@14012

@wdio/smoke-test-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/smoke-test-service@14012

@wdio/spec-reporter

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/spec-reporter@14012

@wdio/static-server-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/static-server-service@14012

@wdio/sumologic-reporter

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/sumologic-reporter@14012

@wdio/testingbot-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/testingbot-service@14012

@wdio/types

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/types@14012

@wdio/utils

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/utils@14012

@wdio/webdriver-mock-service

npm i https://pkg.pr.new/webdriverio/webdriverio/@wdio/webdriver-mock-service@14012

webdriver

npm i https://pkg.pr.new/webdriverio/webdriverio/webdriver@14012

webdriverio

npm i https://pkg.pr.new/webdriverio/webdriverio@14012

commit: ad24883

- tested and works on Android
- updated the implicitWait for tap
- updated UT's
- fix docs for mobile element commands
- update UT's
- update template to support merged cells as row info
@wswebcreation wswebcreation marked this pull request as ready for review December 27, 2024 19:05
Copy link
Member

@christian-bromann christian-bromann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍 great job!

@christian-bromann christian-bromann added the PR: New Feature 🚀 PRs that contain new features label Dec 27, 2024
@christian-bromann christian-bromann merged commit edbda17 into main Dec 27, 2024
@christian-bromann christian-bromann deleted the ws/add-tap-command branch December 27, 2024 21:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

PR: New Feature 🚀 PRs that contain new features

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants