ich komme einfach nicht drauf und der bisherige Hinweis den ich fand auf __init__ verstehe ich nicht.
Es geht um ein Testscript für bzw. mit Selenium.
Ich bekomme immer eine Fehlermeldung zur Zeile 52, die fängt so an:
Code: Alles auswählen
iframePage = SeleniumKursIFramePage(self.driver)
iframePage.aktiviere_iframe()
Code: Alles auswählen
Error
Traceback (most recent call last):
File "C:\Python27\Lib\unittest\case.py", line 329, in run
testMethod()
File "C:\Robot\untitled\SeleniumProjektAbschnitt2\tests\test_web_elemente_iframe_selenium_kurs_firefox.py", line 52, in test_iframe
iframePage = SeleniumKursIFramePage(self.driver)
TypeError: this constructor takes no arguments
Code: Alles auswählen
# This Python file uses the following encoding: utf-8
import unittest
from selenium import webdriver
from pages.seleniumkurs_login_page import SeleniumKursLoginPage
from pages.selniumkurs_home_page import SeleniumKursHomePage
from pages.seleniumkurs_test_app_page import SeleniumKursTestAppPage
from pages.seleniumkurs_iframe_page import SeleniumKursIFramePage
class TestIFrameSeleniumKursFirefox(unittest.TestCase):
def setUp(self):
print("+++ Initialisierung WebDriver")
self.driver = webdriver.Firefox()
self.driver.maximize_window()
self.driver.get("https://seleniumkurs.codingsolo.de")
def tearDown(self):
print("+++ tearDown nach jedem Test. Aufräumen.")
self.driver.close()
def test_iframe(self):
print("+++ FIREFOX Start Test iFrame")
## Arrange
# Login
loginPage = SeleniumKursLoginPage(self.driver)
loginPage.zugangsdaten_eingeben("Benutzername", "Passwort")
loginPage.login_button_anklicken()
# Navigation durch das Portal
homePage = SeleniumKursHomePage(self.driver)
homePage.hauptmenu_aufrufen()
homePage.selenium_test_app_anklicken()
# Sprung zum iFrame
print("+++ Sprung zur iFrame Seite")
testAppPage = SeleniumKursTestAppPage(self.driver)
testAppPage.iframe_beispiel_anklicken()
print("+++ Sprung zum iFrame")
iframePage = SeleniumKursIFramePage(self.driver)
iframePage.aktiviere_iframe()
# Starte iFrame Beispiel mit Eingabe und Button
## Act
print("+++ Texteingabe und Button klicken")
iframePage.namen_eingeben()
iframePage.alert_anklicken()
## Assert
print("+++ Prüfung Inhalt Alertbox")
self.assertTrue('Dieter' in iframePage.alert_box_auslesen())
iframePage.alert_box_wegklicken()
if __name__ == '__main__':
unittest.main()
Code: Alles auswählen
from selenium.webdriver.common.by import By
class SeleniumKursIFramePage:
INPUT_NAME = (By.ID, "name")
BTN_ALERT = (By.ID, "alertbtn")
def __self__(self, driver):
self.driver = driver
def aktiviere_iframe(self):
self.driver.switch_to.frame("iframe")
def namen_eingeben(self, namen):
self.driver.find_element(*self.INPUT_NAME).send_keys(namen)
def alert_anklicken(self):
self.driver.find_element(*self.BTN_ALERT).click()
def alert_box_auslesen(self):
return self.driver.switch_to.alert.text
def alert_box_wegklicken(self):
self.driver.switch_to.alert.accept()
Hat jemand eine Idee?
Vielen Dank und viele Grüße