我下面举个例子,从蟒蛇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
如果没有子构造函数,父构造函数会自动运行。 –