编译 Python 代码时 unindent does not match any outer indentation level 错误

unindent does not match any outer indentation level error when compiling the Python code

错误:

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!")

我该如何解决这个错误?

第二个'if'的缩进与第一个不一致,多了一个space。在python中,您的缩进必须保持一致

基本上,您 可以 缩进的地方,第二个 'if' 与第一个 'if' 甚至与第一个 'print' 相同(在这种情况下,第二个 'if' 将在第一个 'if' 内)。第二个 'if' 的当前位置与之前的任何一个级别都不匹配,因此 python 会引发错误。

.until( python 之后你有一个新行正在考虑这是一个新的代码行因此抛出错误。你的第二个 if 和 print 前面还有一个额外的 space。

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!")

这个错误信息...

unindent does not match any outer indentation level

...表示您的代码块中的缩进有问题。

当缩进 [=52= 时混用 TabSpace 字符时,通常会出现此错误]代码。


分析

当我复制你的代码块并执行时:

我遇到了同样的错误:

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!")


解决方案

您需要修复以下行的缩进:

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

You can find a relevant detailed discussion in