ich die folgenden zwei Funktionen definiert haben:Python/Selenium Funktionsaufruf und erforderlichen Argumente fehlen
def setUp(self, language):
#defines the webdriver
self.browser = webdriver.Firefox()
#calls the website
self.browser.get("http://www.test.com")
#defines the language to be used
self.INTERFACE_LANGUAGE = language
if(language == "de"):
self.username = "[email protected]"
self.pwd = "test"
elif(language == "en"):
self.username = "[email protected]"
self.pwd = "test"
return self.username, self.pwd
und
def login_user(self, username, pwd):
"""login the user"""
#fill in the userdata
self.u_Name = self.browser.find_element_by_id("form_user_id")
self.u_Name.send_keys(username)
self.u_Pwd = self.browser.find_element_by_id("form_user_pwd")
self.u_Pwd.send_keys(pwd)
#submit the form
self.submit_Login = self.browser.find_element(By.XPATH,'//input[@name="send" and @value="Log in"]')
self.submit_Login.click()
, wenn ich versuche setUp so zu nennen:
lang = "de"
username, pwd = setUp(lang)
login_user(username, pwd)
es gibt zurück:
Traceback (most recent call last):
File "c:\Users\user\Documents\test\test.py", line 40, in <module>
username, pwd = setUp(lang)
TypeError: setUp() missing 1 required positional argument: 'language'
login_user(username, pwd)
kann mir bitte jemand helfen, dies zu beheben. Ich verstehe nicht, warum es heißt, dass ein Argument fehlt.
Vielen Dank im Voraus für jede Hilfe!
'def setUp (self, Sprache):' - zwei Argumente, '= setUp (lang)' - ein Argument. Das ist der Grund, warum 'setUp() 1 benötigtes Positionsargument vermisst ' – suit
Das erste Argument von gebundenen Methoden (d. H. Self/cls/wie auch immer Sie es nennen) wird implizit geliefert, Sie geben es nicht explizit selbst weiter. – jkm
Es scheint, dass Sie Methoden aus der Klasse genommen haben und jetzt verwenden Sie sie als normale Funktionen, die nicht "Selbst" brauchen. Oder vielleicht haben Sie falsche Einrückungen im Code und diese Funktion sollte innerhalb der Klasse sein. – furas