I'm new to Automation Testing.
So I have a simple test case - Login with incorrect username and password
.
Steps:
- Open the browser
- Enter the URL “http://practice.automationtesting.in/”
- Click on
My Account
- Enter incorrect username in
username
textbox - Enter incorrect password in
password
textbox. - Click on
login
button - Proper
error
must be displayed (i.e. Invalid username) and prompt to enter login again.
My logic is quite simple, if the provided user/pass
are incorrect, I must receive an error message, and if I find this element on the page (by it's XPath
), then the user/pass
are incorrect indeed.
Here is my code:
class LoginTest(unittest.TestCase):
baseURL = "http://practice.automationtesting.in/"
username = "[email protected]"
password = "incorrect_password"
driver = webdriver.Chrome()
@classmethod
def setUpClass(cls):
cls.driver.get(cls.baseURL)
cls.driver.maximize_window()
def test_login(self):
self.driver.find_element_by_xpath("//*[@id='menu-item-50']/a").click()
lp = LoginPage(self.driver)
lp.setUsername(self.username)
lp.setPassword(self.password)
lp.clickLogin()
time.sleep(3)
error = self.driver.find_element_by_xpath("//*[@id='page-36']/div/div[1]/ul/li/strong")
if error.is_displayed():
print("Incorrect username/password, please provide another one.")
@classmethod
def tearDownClass(cls):
cls.driver.quit()
Did I do something wrong? I'm sure there is another way to execute the step #7
.
Can you give me an example?