Python: если ... elif не возвращает правильные результаты - PullRequest
0 голосов
/ 15 мая 2019

В рамках тренировочного проекта я и мой друг пишем сценарий, облегчающий работу программного обеспечения для управления активами.Мы автоматизируем заполнение необходимых полей и нажимаем все кнопки, необходимые для проверки, например, телефона.После поиска определенного устройства есть два варианта: - устройство найдено и доступно, таким образом, может быть извлечено - устройство найдено, но недоступно, таким образом, не может быть извлечено

Для достижения этого мы написалиоператор if, проверяющий «Checkout» или «Checkin» и, соответственно, дает нам следующие варианты.

Мы перепробовали разные вещи с отступами, поменяв местами порядок операторов ... Похоже, что сценарий никогда не доходит до «другого» момента.Когда текущий статус 'checkin', он выдает сообщение с просьбой начать все сначала, но когда текущий статус 'checkout', он фактически никогда не печатает '5000'.

Мы также пытались использовать elif вместоиначе, указав: elif browser.find_element_by_xpath ('// * [@ title = "Проверить этот элемент"]'): Но даже тогда, на самом деле, он никогда не доходит до перехода в else.

if browser.find_element_by_xpath('//*[@title="Check this item in so it is available for re-imaging, re-issue, etc."]'):
    print("1")
    statusResult = tk.messagebox.askquestion('Device not available', 'Device has been checked out already. Do you wish to start over?', icon='warning')
    if statusResult == 'yes':
        print("2")
    elif statusResult == 'no':
        print("3")
else:
    print("5000")

Когда статус 'checkin', должно появиться всплывающее окно с просьбой начать все сначала (это работает).Когда статус «оформлен», скрипт должен перейти к оператору else и напечатать 5000 в качестве примера.

1 Ответ

0 голосов
/ 17 мая 2019

Методы find_element_by_* не возвращают логическое значение .. Вы не можете использовать их с оператором if, как в вашем примере.Они либо вернут WebElement (если найден), либо вырастут selenium.common.exceptions.NoSuchElementException (если не найден).

try:
    browser.find_element_by_xpath('//*[@title="Check this item in so it is available for re-imaging, re-issue, etc."]'):
    print('found')
except NoSuchElementException:
    print('not found')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...