unittest+ddt自动化测试
from selenium import webdriver
import time
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class BasePage(object):
def __init__(self,selenium_driver,url):
self.driver = selenium_driver
self.url =url
def open(self):
self.driver.get(self.url)
# def locator_element(self,*locator):
# return self.driver.find_element(*locator)
def locator_element(self,*locator):
# return self.driver.find_element(*loc)
try:
#确保元素是可见的。
#注意:以下入参为元组的元素,需要加*。Python存在这种特性,就是将入参放在元组里。
# WebDriverWait(self.driver,10).until(lambda driver: driver.find_element(*loc).is_displayed())
#注意:以下入参本身是元组,不需要加*
WebDriverWait(self.driver,10).until(EC.visibility_of_element_located(locator))
return self.driver.find_element(*locator)
except:
print ("%s 页面中未能找到 %s 元素" %(self, locator))
def quit(self):
self.driver.quit()
from selenium.webdriver.common.by import By
class SearchPage(BasePage):
input_id = (By.ID,"kw")
click_id = (By.ID,"su")
def input_text(self,text):
self.locator_element(*self.input_id).send_keys(text)
def click_element(self):
self.locator_element(*self.click_id).click()
import unittest
from ddt import ddt, data
@ddt
class TestBaiDuSearch(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.url = "http://www.baidu.com"
self.baidu_page = SearchPage(self.driver,self.url)
def tearDown(self):
self.driver.quit()
@data('软件测试','硬件测试')
def test_baidu_search(self,str):
self.baidu_page.open()
self.baidu_page.input_text(str)
self.baidu_page.click_element()
print('ok')
if __name__ == "__main__":
unittest.main()
from selenium import webdriver
import time
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class BasePage(object):
def __init__(self,selenium_driver,url):
self.driver = selenium_driver
self.url =url
def open(self):
self.driver.get(self.url)
# def locator_element(self,*locator):
# return self.driver.find_element(*locator)
def find_element(self,*loc):
# return self.driver.find_element(*loc)
try:
#确保元素是可见的。
#注意:以下入参为元组的元素,需要加*。Python存在这种特性,就是将入参放在元组里。
# WebDriverWait(self.driver,10).until(lambda driver: driver.find_element(*loc).is_displayed())
#注意:以下入参本身是元组,不需要加*
WebDriverWait(self.driver,10).until(EC.visibility_of_element_located(loc))
return self.driver.find_element(*loc)
except:
print ("%s 页面中未能找到 %s 元素" %(self, loc))
def my_send_keys(self,loc,vaule):
self.find_element(*loc).send_keys(vaule)
def my_click(self,loc):
self.find_element(*loc).click()
def quit(self):
self.driver.quit()
from selenium.webdriver.common.by import By
class SearchPage(BasePage):
input_id = (By.ID,"kw")
click_id = (By.ID,"su")
def input_text(self,text):
self.my_send_keys(self.input_id,text)
def click_element(self):
self.my_click(self.click_id)
import unittest
from ddt import ddt, data
@ddt
class TestBaiDuSearch(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.url = "http://www.baidu.com"
self.baidu_page = SearchPage(self.driver,self.url)
def tearDown(self):
self.driver.quit()
@data('软件测试','硬件测试')
def test_baidu_search(self,str):
self.baidu_page.open()
self.baidu_page.input_text(str)
self.baidu_page.click_element()
print('测试ok')
if __name__ == "__main__":
unittest.main(verbosity=2)
from selenium import webdriver
import unittest
from selenium.webdriver.common.by import By
from ddt import ddt, data
@ddt
class Baidu(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.get("http://www.baidu.com")
def tearDown(self):
self.driver.quit()
@data("软件测试","硬件测试")
def test_search(self,string):
self.driver.find_element(By.ID, 'kw').send_keys(string)
self.driver.find_element(By.ID, 'su').click()
if __name__ == "__main__":
unittest.main()