2017-05-18 3 views
0

Ich benutze Appium und Java, um meine App zu automatisieren. Ich muss auf einer Seite bis zu einem bestimmten Text/Element scrollen. Ich kämpfe seit zwei Tagen und habe viele Lösungen ausprobiert, aber es funktioniert nicht. Streichungen alle Lösungen und Szenarien:Blättern Problem in Android nativen App

Appium Version: 1.4.0 Java-Client-Version: 4.1.2 Driver: RemoteWebDriver

Solution1.1: Versuchte mit Java Script. Hier ist der Code:

JavascriptExecutor js = (JavascriptExecutor)driver; 
HashMap scrollObjects = new HashMap(); 
scrollObjects.put("direction", "down"); 
scrollObjects.put("text", "Yes"); 
js.executeScript("mobile: swipe", scrollObjects) 

Lösung 1.2:

WebElement wb = driver.findElement(By.xpath("//*[@resource-id =   'com.practo.fabric:id/toolbar']/following-sibling::android.widget.LinearLayout")); 
JavascriptExecutor js = (JavascriptExecutor)driver; 
HashMap scrollObjects = new HashMap(); 
scrollObjects.put("direction", "down"); 
scrollObjects.put("text", "Yes"); 
scrollObjects.put("element",wb); 
js.executeScript("mobile: swipe", scrollObjects); 

Problem hier ist nicht i Listenansicht haben. Ich habe ein lineares Layout, also habe ich versucht mit linearen Layout Xpath auch einmal, aber ohne Glück.

Solution2:

org.openqa.selenium.Dimension size =driver.manage().window().getSize();  
int starty = (int) (size.height * 0.80); 
int endy = (int) (size.height * 0.20); 
int startx = size.width/2; 
driver.swipe(startx, starty, startx, endy, 3000); 
System.out.println("swiping is done "); 

Hier driver.swipe schenkt Fehler, wie ich bin RemoteWebDriver. Wenn ich versuche, AndroidDriver zu verwenden, sagt es veraltet.

Was soll ich in dieser Situation tun?

Antwort

0

Sie stehen vor dem Problem, dass der appium-Server und die Java-Client-Bibliothek nicht übereinstimmen. Bitte aktualisieren Sie den appium server auf 1.5/1.6, ansonsten können Sie die java-client library Version 2.1.0 benutzen.

Wenn Sie sich dafür entscheiden, java-client2.1.0 mit appium 1.4 zu verwenden, haben wir eine Methode namens "scrollTo", die zu einem bestimmten Text scrollt. Ich habe auch "swipe" verwendet, wie Sie in Lösung 2 in dieser Kombination erwähnt haben.

driver.scrollTo("Like"); //Scrolls to Like text in the app 
0

Ich habe es mit AppiumDriver von Java-Client gelöst. Da ich die neueste Java-Client-Version (5.0.0-BETA6) verwende, heißt es, dass "swipe" methos veraltet ist. Aber es funktioniert.

driver.swipe(300, 701, 300, 441, 3000); 

löste es mit TouchAction-Klasse auch.

TouchAction action = new TouchAction(driver); 
action.press(300, 701).waitAction(2000).moveTo(300, 441).release(); 
action.perform(); 

Hinweis: Koordinaten sind fest codiert.

Verwandte Themen