如果有人可以帮助我,我将不胜感激。我是自动化测试新手,我正在使用 webdriverio 和 Appium。我想编写的测试(本机应用程序)如下:
该元素只有辅助功能 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 },
这就是我解决这个问题的方法:
//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);
});