unindent не соответствует какой-либо ошибке внешнего уровня отступа при компиляции кода Python - PullRequest
2 голосов
/ 28 мая 2020

Ошибка:

unindent does not match any outer indentation level

Код:

def confirmation(self):
    if WebDriverWait(self.driver, 1000).until(
EC.visibility_of_element_located((By.CLASS_NAME, 'failed'))):
        print("Checkout Failed!")

     if WebDriverWait(self.driver, 1000).until(
EC.visibility_of_element_located((By.CLASS_NAME, 'succesful'))):
        print("Checkout Succesful!")

Как устранить ошибку?

Ответы [ 3 ]

1 голос
/ 28 мая 2020

Это сообщение об ошибке ...

unindent does not match any outer indentation level

... подразумевает, что существует проблема с отступом в вашем блоке кода.

Эта ошибка чаще всего наблюдается, когда есть сочетание Tab и Пробел символов при отступе Python кода.


Анализ

Когда я скопировал вам блок кода и выполнил:

indentation_problem

У меня такая же ошибка:

C:\Users\username\Desktop\directory\PyPrograms>class_in_python.py
  File "C:\Users\Soma Bhattacharjee\Desktop\Debanjan\PyPrograms\class_in_python.py", line 26
    def confirmation(self):
              ^
IndentationError: unindent does not match any outer indentation level

Однажды я удалил все белые шаги и символ новой строки и снова разбейте строку для следующей строки кода, отступ по умолчанию кажется другим:

     if WebDriverWait(self.driver, 1000).until(
        EC.visibility_of_element_located((By.CLASS_NAME, 'succesful'))):
        print("Checkout Succesful!")

indentation_difference


Решение

Необходимо исправить отступ следующих строк:

  • EC.visibility_of_element_located((By.CLASS_NAME, 'failed'))):
  • EC.visibility_of_element_located((By.CLASS_NAME, 'succesful'))):

Вы можно найти соответствующее подробное обсуждение в Есть ли проблема с отступом при использовании Anaconda Spyder

0 голосов
/ 28 мая 2020

У вас есть новая строка после того, как .until( python считает, что это новая строка кода, что вызывает ошибку. Также перед вторыми if и print есть лишний пробел.

def confirmation(self):
    if WebDriverWait(self.driver, 1000).until(
        EC.visibility_of_element_located((By.CLASS_NAME, 'failed'))):
            print("Checkout Failed!")

    if WebDriverWait(self.driver, 1000).until(
      EC.visibility_of_element_located((By.CLASS_NAME, 'succesful'))):
          print("Checkout Succesful!")
0 голосов
/ 28 мая 2020

Отступ второго 'if' не совпадает с первым, он находится в одном дополнительном месте. В python ваш отступ должен быть согласованным.

В основном те места, где вы могли сделать отступ для второго «if», будут даже с первым «if» или даже с первым «print» (в этом случае второе «если» будет внутри первого «если»). Текущее расположение второго «if» не соответствует ни одному из этих предыдущих уровней, поэтому python вызывает ошибку.

...