2017-12-12 1 views
0

Ich benutze Appium 1.7 und Android 8 auf realen Gerät. Aber ich bin fest mit dem Wischen nach oben. mit verschiedenen Kombinationen versucht. Könnten Sie bitte einen einfachen Code für die Swipe-Funktionalität bereitstellen?wie man vertikale wischen in android für appium

Versuchte:

private void scrollDown() { 
    //if pressX was zero it didn't work for me 
    int pressX = driver.manage().window().getSize().width/2; 
    // 4/5 of the screen as the bottom finger-press point 
    int bottomY = driver.manage().window().getSize().height * 4/5; 
    // just non zero point, as it didn't scroll to zero normally 
    int topY = driver.manage().window().getSize().height/8; 
    //scroll with TouchAction by itself 
    scroll(pressX, bottomY, pressX, topY); 
} 

/* 
* don't forget that it's "natural scroll" where 
* fromY is the point where you press the and toY where you release it 
*/ 
private void scroll(int fromX, int fromY, int toX, int toY) { 
    TouchAction touchAction = new TouchAction(driver); 
    touchAction.longPress(fromX, fromY).moveTo(toX, toY).release().perform(); 
} 

Aber kein Glück .. !!

Antwort

0

============================================== ======================

Verwendet Java-Client-Version 5.0.4 und unten verwendeten Code für vertikale Swipe.

Dimension size = this.driver.manage() 
    .window() 
    .getSize(); 
int startX = size.getWidth()/2; 
int startY = size.getHeight()/2; 
int endX = 0; 
int endY = (int) (startY * -1 * 0.75); 
TouchAction action = new TouchAction (this.driver); 
action.press (startX, startY) 
    .moveTo (endX, endY) 
    .release() 
    .perform(); 

=========================================== =

funktioniert perfekt dank Wasiq Bhamla

0
private void scroll(int fromX, int fromY, int toX, int toY) { 
    TouchAction touchAction = new TouchAction(driver); 
    touchAction.tap(fromX, fromY).waitAction(1000).moveTo(toX, 
    toY).release().perform(); 
} 

Sie müssen nach dem Drücken warten. Dies wird arbeiten kann dies in jeder Richtung von Punkt A nach Punkt B kann

+0

müssen wir Koordinatenwerte direkt hier übergeben? int fromX, int fromY, int intX, int toY –

0

Sie Scroll-Aktion durchführen zu streichen verwenden/nach oben wischen mit folgenden Code:

Dimension size = this.driver.manage() 
    .window() 
    .getSize(); 
int startX = size.getWidth()/2; 
int startY = size.getHeight()/2; 
int endX = 0; 
int endY = (int) (startY * -1 * 0.75); 
TouchAction action = new TouchAction (this.driver); 
action.press (startX, startY) 
    .moveTo (endX, endY) 
    .release() 
    .perform(); 

Sie können den Code optimieren links ausführen , nach unten und rechts streichen. Lassen Sie mich wissen, ob dies für Sie funktioniert.

+0

Dies ergibt einen negativen Wert. "int endY = (int) (startY * -1 * 0.75);". Daher koordinieren nicht verfügbares Ausnahmewerfen. –

+0

Wenn Sie 5.0 oder höher von Java-Client verwenden, dann wird dies gut funktionieren, wie ich es in meinem Framework verwende und derselbe Code funktioniert gut. Im Wesentlichen -ve endY wird das Appium angeben, um von der Mitte des Bildschirms zum oberen Rand des Bildschirms zu bewegen. –

+0

Ich benutze Java 1.8 und es gibt -ve Wert. –

0

Das gibt mir die Lösung:

Touchaktionen action = neue Touchaktionen (Fahrer); action.longPress (unteresElement) .moveTo (topElement) .release(). perform();

Verwandte Themen