2016-07-15 13 views
0

Ich kann auf der mobilen Seite eines Android-Geräts mit Appium nicht herunterscrollen. Ich habe driver.scrollTo (Element) versucht, es scrollt nicht hinunter zu dem spezifizierten Element. Ich habe versucht, Aktionen Klasse, aber ich habe einen Fehler als "Methode wurde noch nicht implementiert" Ich habe einen anderen Ansatz versucht mit Javascript, aber es hat auch nicht funktioniert. Jemand gibt einen Vorschlag. HierDie Seite auf dem Android-Gerät kann nicht durchsucht werden

ist der Code:

public static void main(String[] args) throws IOException, InterruptedException { 
     DesiredCapabilities cap = new DesiredCapabilities(); 

     cap.setCapability(CapabilityType.BROWSER_NAME, "Android"); //Name of mobile web browser to automate. Should be an empty string if automating an app instead. 
     cap.setCapability(CapabilityType.VERSION, "6.0.1"); 
     cap.setCapability(CapabilityType.PLATFORM, "Mac"); 
     cap.setCapability("platformName", "android"); 
     cap.setCapability("platformVersion", "6.0.1"); 
     cap.setCapability("deviceName", "4d00a89e4b2631e9"); 
     cap.setCapability("app", "/Users/ds_nivedha/Downloads/flipkart.apk"); 
     cap.setCapability("appPackage", "com.usablenet.mobile.walgreen"); //Replace with your app's package 
     cap.setCapability("appActivity", "com.usablenet.mobile.walgreen.AppStart"); //Replace with app's Activity 
     driver = new AndroidDriver<MobileElement>(new URL("http://127.0.0.1:4723/wd/hub"), cap); 

     driver.manage().timeouts().implicitlyWait(90, TimeUnit.SECONDS); 

     /* MobileElement skip= driver.findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.support.v4.view.ViewPager[1]/android.widget.RelativeLayout[1]/android.widget.RelativeLayout[2]/android.widget.Button[1]")); 
     skip.click(); */ 

     MobileElement skiparrow= 
       driver.findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.support.v4.view.ViewPager[1]/android.widget.RelativeLayout[1]/android.widget.RelativeLayout[3]/android.widget.ImageButton[1]")); 
     skiparrow.click(); 

     MobileElement skiparrowRefill= 
       driver.findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.support.v4.view.ViewPager[1]/android.widget.RelativeLayout[1]/android.widget.RelativeLayout[2]/android.widget.ImageButton[1]")); 

     skiparrowRefill.click(); 

     MobileElement skiparrowPaperless= 
       driver.findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.support.v4.view.ViewPager[1]/android.widget.RelativeLayout[1]/android.widget.RelativeLayout[2]/android.widget.ImageButton[1]")); 

     skiparrowPaperless.click(); 

     MobileElement done= 
       driver.findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.support.v4.view.ViewPager[1]/android.widget.RelativeLayout[1]/android.widget.RelativeLayout[1]/android.widget.Button[1]")); 
     done.click(); 



     MobileElement shopProducts= 
       driver.findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.widget.RelativeLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.support.v7.widget.RecyclerView[1]/android.widget.RelativeLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[2]/android.widget.TextView[2]")); 
     shopProducts.click(); 

     MobileElement personalCare= 
       driver.findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.RelativeLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.ScrollView[1]/android.widget.LinearLayout[1]/android.widget.GridView[1]/android.widget.TextView[2]")); 
     personalCare.click(); 


     MobileElement hairCare= 
       driver.findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.RelativeLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.widget.ListView[1]/android.widget.TextView[3]")); 
     hairCare.click(); 


     MobileElement stylingProduct= 
       driver.findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.RelativeLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.widget.ListView[1]/android.widget.TextView[3]")); 
     stylingProduct.click(); 

     MobileElement faroukAddToCart= 
     driver.findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.RelativeLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.widget.LinearLayout[1]/android.webkit.WebView[1]/android.webkit.WebView[1]/android.view.View[1]/android.view.View[1]/android.view.View[1]/android.view.View[1]/android.view.View[3]/android.view.View[2]/android.view.View[1]/android.view.View[3]/android.view.View[1]/android.view.View[1]/android.view.View[4]/android.view.View[1]/android.view.View[1]/android.view.View[2]/android.widget.Button[1]")); 
     faroukAddToCart.click(); 

     WebDriverWait wait = new WebDriverWait(driver, 30); 
     wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//android.widget.Button[contains(@resource-id,'addToCart-cart-checkout')]"))); 

     driver.findElement(By.xpath("//android.widget.Button[contains(@resource-id,'addToCart-cart-checkout')]")).click(); 

     //driver.scrollTo("Proceed to checkout"); 

     MobileElement proceedToCheckout= 
       driver.findElement(By.xpath("//android.widget.Button[contains(@resource-id,'proceedtocheckout')]")); 


     ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", proceedToCheckout); 
     Thread.sleep(500); 

     /* Actions actions = new Actions(driver); 
     actions.moveToElement(proceedToCheckout); 
     actions.perform(); */ 

     MobileElement checkout= 
       driver.findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.RelativeLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.widget.LinearLayout[1]/android.webkit.WebView[1]/android.webkit.WebView[1]/android.view.View[1]/android.view.View[1]/android.view.View[1]/android.view.View[1]/android.view.View[1]/android.view.View[2]/android.view.View[2]/android.view.View[5]/android.view.View[2]/android.view.View[5]/android.view.View[1]/android.view.View[1]/android.view.View[1]/android.view.View[1]/android.view.View[1]/android.widget.Button[1]")); 
     checkout.click(); 

Antwort

0

Verwenden Swipe Methode Halten Start x und Ende x-Wert konstant und Änderung y und Ende y-Werte beginnen, um nach oben oder unten

+0

'Swpie' ist veraltet von Java-Client 4.0 Version –

+0

scrollTo() und scrollToExact() wurde veraltet. Sie werden in der nächsten Version entfernt. nicht wischen https://discuss.appium.io/t/java-client-4-0-0-released/10434 –

+0

Sie können swipe (int startx, int starty, int endx, int endy, int duration) auf etwas überschreiben wie: neue TouchAction (getDriver()). drücken (startx, starty) .waitAction (Dauer) .moveTo (endx - startx, endy - starty) .release(). perform(); –

0

Die scrollTo() Methode ist veraltet Jetzt können Sie auf der offiziellen Website über here

überprüfen Stattdessen können Sie swipe Methode verwenden, vertikal auf dem mobilen Gerät zu wischen und zu überprüfen, ob Ihre Erwartungen d Text ist sichtbar oder nicht, in nicht dann können Sie mehr Swipes machen, natürlich werden Sie Schleife dafür verwenden. Um mehr zu wissen Swipehere siehe

Für Swipe Verfahren unter Beispiel siehe

public void swipingVertical() throws InterruptedException { 
    //Get the size of screen. 
    size = driver.manage().window().getSize(); 
    System.out.println(size); 

    //Find swipe start and end point from screen's with and height. 
    //Find starty point which is at bottom side of screen. 
    int starty = (int) (size.height * 0.80); 
    //Find endy point which is at top side of screen. 
    int endy = (int) (size.height * 0.20); 
    //Find horizontal point where you wants to swipe. It is in middle of screen width. 
    int startx = size.width/2; 
    System.out.println("starty = " + starty + " ,endy = " + endy + " , startx = " + startx); 

    //Swipe from Bottom to Top. 
    driver.swipe(startx, starty, startx, endy, 3000); 
    Thread.sleep(2000); 
    //Swipe from Top to Bottom. 
    driver.swipe(startx, endy, startx, starty, 3000); 
    Thread.sleep(2000); 
} 

Lassen Sie mich wissen, wenn Sie mehr Hürde in diesem Gesicht.

+0

Hallo, danke für Ihre Antwort. Ich habe das versucht, konnte aber nicht runterscrollen. Ich habe Ihren Code ein wenig modifiziert, um vertikal nach unten zu scrollen. Dimensionsgröße = driver.manage(). Window(). GetSize(); \t \t System.out.println (Größe); \t \t int starty = (int) (Größe.Höhe * 0.80); \t \t int endy = (int) (Größe.Höhe * 0.20); \t \t int startx = Größe.Weit/2; \t \t System.out.println ("starty =" + starty + ", endy =" + endy + ", startx =" + startx); \t \t driver.swipe (startx, endy, startx, starty, 3000); \t \t Thread.sleep (2000); – Nivi

+0

@Nivi: Hat es funktioniert? –

+0

Eigentlich hat es auch nicht für mich funktioniert. Ich habe versucht, andere Ansatz.Dies funktioniert für mich.Dimension Dimensionen = driver.manage(). Window(). GetSize(); \t \t Double screenHeightStart = Abmessungen.getHeight() * 0.5; \t \t int scrollStart = screenHeightStart.intValue(); \t \t System.out.println ("s =" + scrollStart); \t \t Doppelt screenHeightEnd = dimensions.getHeight() * 0.2; \t \t int scrollEnd = screenHeightEnd.intValue(); \t \t für (int i = 0; i Nivi

Verwandte Themen