python if __name__ == "__main__": IndentationError: expected an indented block

python if __name__ == "__main__": IndentationError: expected an indented block

我用PyCharm右击运行'hello '或者用shell运行pythonhello.py,两者return 以下错误:

    if __name__ == "__main__":
                             ^ 
IndentationError: expected an indented block

以下代码复制自https://selenium-python.readthedocs.io/getting-started.html

import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys


class TestHello(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome(
            "D:\Softwares\selenium\ChromeDriver 83.0.4103.39\chromedriver_win32\chromedriver.exe")

    def test_pick_goods(self):
        driver = self.driver
        driver.get("http://www.python.org")
        self.assertIn("Python", driver.title)
        elem = driver.find_element_by_name("q")
        elem.send_keys("pycon")
        elem.send_keys(Keys.RETURN)
        assert "No results found." not in driver.page_source
        print("-----last line----")

    def tearDown(self):
        #self.driver.close()


if __name__ == "__main__":
    unittest.main()

我之前用了tab或者四个空格if name == "main",但是都没有效果。

错误来自上面的空方法:

def tearDown(self):
    #self.driver.close()

你不能有一个完全空的方法,解析器无法处理它。添加 pass 语句以使其解析:

def tearDown(self):
    pass