基于Python ddt, selenium数据驱动测试实例1
#!/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
文章来自:http://blog.csdn.net/guaguastd/article/details/45394081