Как я вижу Ошибка:
TypeError: init () принимает 2 позиционных аргумента, но 3 получили
Означает, что вам нужно добавить третий аргумент в __init()__
:
Это ваш текущий __init()__
:
def __init__(self, driver):
self.driver = driver
self.wait = WebDriverWait(self.driver, 20)
Как вы указали в своем вопросе объекты-страницы селена , вы можете здесь увидеть, что у них есть третий аргумент (хотя не всегда используется, см. owner
).
Так что просто добавьте третий, который должен сработать!
Как вы можете видеть здесь:
def __get__(self, obj, owner):
"""Gets the text of the specified object"""
driver = obj.driver
WebDriverWait(driver, 100).until(
lambda driver: driver.find_element_by_name(self.locator))
element = driver.find_element_by_name(self.locator)
return element.get_attribute("value")
Надеюсь, это поможет вам!