#!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2015-04-27 @author: beyondzhou @name: logintest.py ''' import unittest from ddt import ddt, data, unpack from selenium import webdriver import os import time from selenium.common.exceptions import NoSuchElementException from selenium.webdriver.common.by import By @ddt class LoginTest(unittest.TestCase): @classmethod def setUp(cls): # Get the driver of chrome chromedriver = "C:\Program Files\Google\Chrome\Application\chromedriver.exe" os.environ["webdriver.chrome.driver"] = chromedriver cls.browser = webdriver.Chrome(chromedriver) cls.browser.get('http://10.10.51.150') time.sleep(1) @data(("admin", "pica8", "Configuration"), ("admin", "pica9", "Invalid username or password")) @unpack def test_login_in(self, username, password, expected_value): # test login in self.browser.find_element_by_xpath("//input[@placeholder='Username']").send_keys(username) self.browser.find_element_by_xpath("//input[@placeholder='Password']").send_keys(password) self.browser.find_element_by_tag_name("button").click() time.sleep(1) self.assertTrue(self.is_content_present("%s" % expected_value)) def is_element_present(self, how, what): """ Utility method to check presence of an element on page :params how: by locator type :params what: locator value """ try: self.browser.find_element(by=how, value=what) except NoSuchElementException, _: return False return True def is_content_present(self, what): """ Utility method to check presence of an element on page :params what: content value """ try: self.browser.find_element(by=By.XPATH, value="//*[contains(text(), '%s')]" % what) except NoSuchElementException, _: return False return True @classmethod def tearDown(cls): # define when you need cls.browser.quit() if __name__ == '__main__': unittest.main(verbosity=2)
Result:
test_login_in_1___admin____pica8____Configuration__ (__main__.LoginTest) ... ok test_login_in_2___admin____pica9____Invalid_username_or_password__ (__main__.LoginTest) ... ok ---------------------------------------------------------------------- Ran 2 tests in 17.688s OK
时间: 2024-10-06 20:51:11