我是新手appium。如何在appium中查找元素
我正在学习购物应用自动化appium (Flipkart)。
我想选择元素第五元素从“为您推荐折扣”名单。
为了做到这一点,我不得不使水平滚动伸手去找那个元素。但我有问题获取该容器元素“为您推荐的折扣”存在,因此我可以取5th element
。
我猜问题是flipkart的UI总是变化。
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
Thread.sleep(3000);
driver.scrollToExact("Recommended Offers for You");
Thread.sleep(10000);
// Getting error on below line
AndroidElement ele = (AndroidElement) driver.findElement(By.xpath("//android.support.v7.widget.RecyclerView[@index='1']"));
for(int i=0;i<4;i++)
{
Thread.sleep(2000);
if (ele.findElement(By.xpath("android.widget.RelativeLayout[@index='2']")).isDisplayed())
{
ele.findElement(By.xpath("android.widget.RelativeLayout[@index='2']")).click();
break;
}
else
{
horizontalScroll(ele);
}
}
public void horizontalScroll(AndroidElement ele)
{
Dimension size=driver.manage().window().getSize();
int x_start=(int)(size.width*0.60);
int x_end=(int)(size.width*0.30);
int y=130;
ele.swipe(SwipeElementDirection.RIGHT,x_end,y,4000);
}
我使用uiautomator
到find elements
。这是UI的屏幕截图。
我有以下问题:
- 什么是找到的元素,如果所显示的应用程序的UI最佳途径。
- 我应该自动化哪个应用程序才能学习appium。
- 如何自动化应用程序是否UI的总是越来越变
请帮助!提前致谢。
如果有多个资源具有相同的resource_id,该怎么办?因为我看到多个资源具有相同的resource_id – Ankur
在RecyclerView中,项目通常具有相同的resourceIds,因为它们是相同的View。除非你使用独特的项目来填充RecyclerView,这将违背RecyclerView的意图。 – Daniel