执行滚动并通过辅助功能 ID 查找元素 - webdriverio 与 Appium

问题描述 投票:0回答:1

如果有人可以帮助我,我将不胜感激。我是自动化测试新手,我正在使用 webdriverio 和 Appium。我想编写的测试(本机应用程序)如下:

  1. 垂直向下滚动到某个元素
  2. 通过辅助功能 ID 定位元素
  3. 单击元素

该元素只有辅助功能 ID。我不知道如何使用辅助功能 ID 来找到它。

问题是如何编写测试以向下滚动到特定元素,通过其辅助功能 ID 找到它并单击它。

我尝试使用 UiScrollable 类并写了这个:

it('Scroll down to and click on wellness category', async () => {
    await $('android=new UiScrollable(new UiSelector().scrollable(true)).flingToEnd(1)');
    const wellness = await $('~wellness');
    await wellness.click();
    await driver.pause(1000);
});

这会向下滚动到屏幕末尾,但无法找到该元素。

这些是功能: 能力:[ { "appium:platformName": "Android", "appium:platformVersion": "11.0", "appium:deviceName": "Pixel 4a API 30", "appium:automationName": "UIAutomator2", "appium:app": path.join(process.cwd(), "apk 路径"), “appium:autoGrantPermissions”:true },

webdriver-io appium-android
1个回答
0
投票

这就是我解决这个问题的方法:

//Android scroll forward and backward
async swipeForward()
  {
      await driver.pause(2000)
      await $('android=new UiScrollable(new UiSelector().scrollable(true)).scrollForward()');
  }

  // Swipe backward
  async swipeBackward()
  {
      await driver.pause(2000)
      await $('android=new UiScrollable(new UiSelector().scrollable(true)).scrollBackward()');
  }

这是我写的,我能够滚动到该元素,通过 id 识别它并单击它:

it('Click on wellness category', async () => {
        await $('android=new UiScrollable(new UiSelector().scrollable(true)).scrollForward()');
        const wellness = await $('~accessibility id here');
        await wellness.click();
        await driver.pause(2000);
    });
© www.soinside.com 2019 - 2024. All rights reserved.