2015-06-18 28 views
12

Sto cercando di aprire il Centro di controllo utilizzando appium e il seguente codice:accesso iOS Control Center utilizzando appium

int halfWidth = driver.manage().window().getSize().width/2; 
    int screenHeight = driver.manage().window().getSize().height; 
    driver.swipe(halfWidth, screenHeight-5, halfWidth, screenHeight-300, 500); // driver is instance of IOSDriver 

Invece di aprire il centro di controllo l'applicazione disegna semplicemente sullo schermo verso l'alto dal basso (usando le coordinate ingresso). Qualcuno sa come aprire Control Center usando appium e swipe (o in qualsiasi altro modo)?

Grazie, Charlie

+0

Guardando i dettagli della strisciata() metodo, ho il sospetto che potrebbe essere perché premiamo verso il basso, quindi muoviti, piuttosto che spostarti dall'inizio ... ma aspetterò e vedrò se gli altri possono confermarlo. –

risposta

-1

Ok, quindi dopo un bel po 'di indagine mi sembra che questo non è possibile. Se hai davvero bisogno di questa funzionalità, penso che uno strumento come la melanzana potrebbe essere appropriato.

4

Possiamo farlo. Ho provato in Appium 1.4.13 e sono in grado di modificare le impostazioni.

Ho usato sotto il codice per modificare le impostazioni nel mio iPadAir2.

int height = driver.findElementByClassName("UIAWindow").getSize().getHeight(); 
int width = driver.findElementByClassName("UIAWindow").getSize().getWidth(); 
driver.swipe(width-100, height, width-100, height-200, 500); 
driver.findElementByAccessibilityId("Wi-Fi").click(); 
+0

L'ID di accessibilità wifi è cambiato tra versioni e/o dispositivi iOS? E dove hai trovato il valore dell'ID di accessibilità per il wifi nel centro di controllo? È documentato da qualche parte? Sono arrivato fino a far apparire il centro di controllo con il frammento di codice, ma non riesce a trovare il pulsante/icona wifi dall'ID di accessibilità. Ho provato su iPod Touch con iOS 8.4.1, Appium 1.4.16 e XCode 7.2. – David

+0

Non credo che i cambiamenti di accessibilità possano cambiare tra le versioni del sistema operativo. Ho usato Appium Inspector per identificare l'accessibilità del pulsante Wifi. –

0

sono in grado di attivare o disattivare la connessione Wifi OFF o disattivare la modalità aereo su utilizzando Appium 1.6.4-beta per iOS

Swipe su dal fondo dello schermo fare clic su Continua collegamento Fare clic sul Wifi o Tasto aereo Scorri verso il basso dal centro dello schermo

Ma questo non sembra che stia facendo nulla nel simulatore. Devo effettivamente disattivare la connessione Internet del mio computer per disabilitare Internet sul simulatore.

@iOSFindBy(xpath = "//XCUIElementTypeSwitch[@name='Wi-Fi']") 
private MobileElement WIFI_MODE_BUTTON; 

public void disableWifi() { 
    openToolBarMenu(); 
    //if wifi is on/true then turn it off 
    if (WIFI_MODE_BUTTON.getAttribute("value") == "true") { 
     Autoscope.tap(WIFI_MODE_BUTTON); 
    } 
    closeToolBarMenu(); 
} 


@iOSFindBy(xpath = "//XCUIElementTypeButton[@name='Continue']") 
private MobileElement CONTINUE_BUTTON; //continue button on control center 

public void openToolBarMenu() { 
    Autoscope.scrollFromBottomOfScreen(); 
    if (Autoscope.isElementDisplayed(CONTINUE_BUTTON)) { 
     Autoscope.tap(CONTINUE_BUTTON); 
    } 
} 


static public void scrollFromBottomOfScreen() { 
    TouchAction touchAction = new TouchAction(autoscopeDriver); 

    int xStartPoint = Math.round(pixelWidth()/2); 
    int yStartPoint = pixelHeight(); 
    int yEndPoint = 0 - yStartPoint; 
    touchAction.press(xStartPoint, yStartPoint).moveTo(0, yEndPoint).release().perform(); 
} 
0

Appium 1.6.5, è possibile utilizzare il metodo colpo, urlare il mio codice Python:

window_size = self.driver.get_window_size() # this returns dictionary 
el = self.driver.find_element(*self.configuration.CommonScreen.WEB_VIEW) 
action = TouchAction(self.driver) 
start_x = window_size["width"] * 0.5 
start_y = window_size["height"] 
end_x = window_size["width"] * 0.5 
end_y = window_size["height"] * 0.5 
action.press(el, start_x, start_y).wait(100).move_to(el, end_x, end_y).release().perform()