2015-10-10 3 views
2

Мне нужно проверить, зарегистрирован ли пользователь в приложении. Поэтому я должен проверить, присутствует ли какой-либо из трех элементов, указанных ниже. Если кто-то из них присутствует, пользователь вошел в систему, и мне нужно нажать кнопку выхода.Попытка, если ellif в Appium Python

элементы являются: 1. знак вне кнопка уже присутствует (с пользователем уже подписан в) 2. Название счета

Мой сценарий как:

if(wd.find_element_by_name("sign out").is_displayed()): 
     wd.find_element_by_name("sign out").click()  
elif(wd.find_element_by_name("usr_name").is_displayed()): 
     wd.find_element_by_name("usr_name").click() 
     wd.find_element_by_name("menu_close").click() 
     wait("sign out") 
     wd.find_element_by_name("sign out").click() 
else: 
     print"NOt Signed in" 

Но что происходит, это моя appium выполняет первый IF Loop и ожидает, что элемент выйдет и заканчивает сообщение об ошибке.

An element could not be located on the page using the given search parameters. 

Где я поступаю неправильно? Обычно, как я могу проверить, присутствует ли элемент, и щелкните его, как это. Пожалуйста, помогите мне.

+1

Что такое полная трассировка? –

ответ

1

не если Элиф быть отступа, как это:

if(wd.find_element_by_name("sign out").is_displayed()): 
     wd.find_element_by_name("sign out").click()  
elif(wd.find_element_by_name("usr_name").is_displayed()): 
     wd.find_element_by_name("usr_name").click() 
     wd.find_element_by_name("menu_close").click() 
     wait("sign out") 
     wd.find_element_by_name("sign out").click() 
else: 
     print"NOt Signed in" 
+0

Извините, его ошибка с копией папок на форуме. –

+0

поэтому код отформатирован следующим образом? –

+0

Да. Его уже отформатирован так же, как вы упоминали –

0

Вы должны использовать wd.implicitly_wait(30) после каждой команды, так что сервер appium ждет следующего элемента, чтобы быть visble

0

Если вы хотите проверить элемент присутствует перед запуском действия, просто создайте метод, который возвращает логическое значение, основанное на свойстве isDisplayed для элемента.

Что-то вроде этого:

def IsElementDisplayed(): 
    try: 
     return wd.find_element_by_name("sign out").is_displayed() 
    except: 
     return false 

И вызовите IsElementDisplayed перед каждым действием из тестового sript.

Смежные вопросы