2015-06-18 3 views
12

Я пытаюсь открыть Центр управления использованием appium и следующий код:доступ IOS Control Center с помощью 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 

Вместо того чтобы открыть центр управления приложением просто рисует на экране вверх от нижней части (с помощью координат вход). Кто-нибудь знает, как открыть Control Center, используя appium и проведите пальцем (или любым другим способом)?

Спасибо, Чарли

+0

Глядя на детали прикосновения() метод, я подозреваю, что это может быть потому, что мы придавить, то переместите, а не просто двигайтесь с самого начала ... но я подожду и посмотрю, смогут ли другие подтвердить это. –

ответ

-1

ИТАК после изрядного расследования, мне кажется, что это невозможно. Если вам действительно нужна эта функциональность, я думаю, что такой инструмент, как баклажан, может быть уместным.

4

Мы можем это сделать. Я попытался в Appium 1.4.13, и я могу изменить настройки.

Я использовал ниже код для изменения настроек в своем 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

Изменен ли идентификатор доступности wifi между версиями iOS и/или устройствами? И где вы нашли значение идентификатора доступности для Wi-Fi в центре управления? Это где-то задокументировано? Я добрался до центра управления с помощью фрагмента кода, но он не может найти значок/значок Wi-Fi по идентификатору доступности. Я тестировал на iPod Touch под управлением iOS 8.4.1, Appium 1.4.16 и XCode 7.2. – David

+0

Я не думаю, что accessibilityId изменяется между версиями ОС. Я использовал Appium Inspector для идентификации идентификатора доступности Wifi. –

0

Я может переключить Wifi OFF или включить режим полета с помощью Appium 1.6.4-беты для прошивки

Размаха вверх от нижней части экрана Нажмите ссылку продолжить Нажмите Wi-Fi или Кнопка самолета Проведите по экрану от середины экрана

Но это, похоже, ничего не делает в симуляторе. Я должен отключить интернет-подключение к компьютеру, чтобы отключить Интернет на симуляторе.

@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, Вы можете использовать метод салфетки, ржали мой код 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() 
Смежные вопросы