У меня есть следующий пример из питона 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
на это конструктор, но мы не определить метод __init__
в LoginPage
классе.
Означает ли это, что конструктор родительского класса PageObject
вызывается с параметром driver
? Я думал, что python не подразумевает вызов конструкторов родителя?
Если вы не определите '__init__' метод, используется родительская реализация, как правило. – keksnicoh
, если дочерний конструктор не существует, родительский конструктор будет автоматически запускаться. –