我下面舉個例子,從蟒蛇page_object
文檔:父構造函數默認調用?
from page_objects import PageObject, PageElement
from selenium import webdriver
class LoginPage(PageObject):
username = PageElement(id_='username')
password = PageElement(name='password')
login = PageElement(css='input[type="submit"]')
driver = webdriver.PhantomJS()
driver.get("http://example.com")
page = LoginPage(driver)
page.username = 'secret'
page.password = 'squirrel'
assert page.username.text == 'secret'
page.login.click()
讓我困擾的是,我們創建了一個LoginPage
與提供driver
它的構造,但我們還沒有在LoginPage
類中定義的方法__init__
。
這是否意味着使用driver
參數調用父類PageObject
的構造函數?我認爲python不會隱式調用父類的構造函數?
如果不定義'__init__'方法,父類的實現時,正常。 – keksnicoh
如果沒有子構造函數,父構造函數會自動運行。 –