Ich bin neu in Appium.So finden Sie Element in Appium
Ich lerne Appium mit Automatisierung der Shopping-App (Flipkart).
Ich versuche Element fünftes Element von „Empfohlene Rabatt für Sie“ Liste auszuwählen.
Um dies zu tun, muss ich horizontal scrollen, um dieses Element zu erreichen. Aber ich habe ein Problem bekommen, dass Containerelement, in dem Elemente von "Empfohlener Rabatt für Sie" vorhanden ist, so kann ich die 5th element
holen.
Ich denke, das Problem ist UI von flipkart immer Änderung bekommen.
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);
}
I uiautomator
zu find elements
verwenden. Hier ist der Screenshot von UI.
Ich habe folgende Fragen:
- Was beste Weg ist, Elemente zu finden, wenn UI von App als angezeigt wird.
- Welche App soll ich automatisieren, um Appium zu lernen?
- Wie App automatisieren, wenn UI von App immer ändern
Hilfe Bitte bekommen ist! Danke im Voraus.
Was passiert, wenn mehrere Ressourcen dieselbe Ressource-ID haben? Weil ich sehe, dass mehrere Ressourcen dieselbe Ressource haben – Ankur
In einer RecyclerView werden Elemente sehr häufig die gleichen resourceIds haben, da sie die gleiche Ansicht sind. Es sei denn, Sie verwenden eindeutige Elemente, um den RecyclerView zu füllen, was gegen die Absicht des RecyclerViews verstoßen würde. – Daniel