2016-03-15 4 views
2

Мне нужно проверить, существует ли кнопка с названием «title_I_need». И если существует, чтобы нажать, если не нажать другую. Все это в javaScript.Как использовать оператор «if» для тестов Appium

Что я сделал, я записал в тесте Appium.App и добавил подтверждение, если кнопка существует. Поскольку я не знаком с JavaScript, я начал с Objective-C. Но в результате он всегда нажимает кнопку title_I_need, но мое ожидание - это еще одна ветвь с кнопкой other_title.

Могу ли я выполнить такую ​​проверку с помощью Appium? Если да, то как я могу сделать это с помощью JavaScript (node.js)?

#import <Selenium/SERemoteWebDriver.h> 

@implementation SeleniumTest 

-(void) run 
{ 
    SECapabilities *caps = [SECapabilities new]; 
    [caps addCapabilityForKey:@"appium-version" andValue:@"1.0"]; 
    [caps setPlatformName:@"iOS"]; 
    [caps setPlatformVersion:@"8.4"]; 
    [caps setDeviceName:@"device_name"]; 
    [caps setApp:@"/path/AppName.app"]; 
    NSError *error; 
    SERemoteWebDriver *wd = [[SERemoteWebDriver alloc] initWithServerAddress:@"0.0.0.0" port:4723 desiredCapabilities:caps requiredCapabilities:nil error:&error]; 
    //check for element with wrong not existed title to go to else branch 
    if ([wd findElementBy:[SEBy name:@"wrong_title"]]){ 
    [[wd findElementBy:[SEBy name:@"title_I_need"]] click]; 
    } else { 
    [[wd findElementBy:[SEBy name:@"other_title"]] click]; 
    } 
} 

@end 

ответ

2

Самый простой способ сделать это состоит в использовании findElementsBy (обратите внимание s), который возвращает массив. Затем просто проверьте, пуст ли массив. Поместите это в функцию и назовите ее чем-то вроде doesElementExists. Соответствующим java-методом для этого будет:

public boolean doesElementExists(By by) { 
    try { 
     List allElements = driver.findElements(by); 
     if ((allElements == null) || (allElements.size() == 0)) 
      return false; 
     else 
      return true; 
    } catch (java.util.NoSuchElementException e) { 
     return false; 
    } 
} 
+0

Невозможно это проверить. После обсуждения вопросов с моей командой мы решили перейти на Robotium на Android и UI Automation на iOS. –