selenium unittest管理測試用例
11.處理下拉選單的方法
allarea = self.lsp.find_element_by_id("province")
alloptions =allarea.find_elements_by_tag_name("option")
for option in alloptions:
exp_value =option.get_attribute("value")
print exp_value
if exp_value == "110000":
option.click()
第二種方法(只適用於select選框)
通過選項文字
from selenium.webdriver.support.ui import Select
Select(driver.find_element_by_xpath(".//*[@id='province']")).select_by_visible_text(u"北京市")
通過索引
Select(driver.find_element_by_name("city")).select_by_index(0)
通過value值
Select(driver.find_element_by_name("county")).select_by_value("110100")
第三種方法:層級定位先定位父級元素,通過父元素在定位子元素
1. 處理frame彈框
ifr=driver.find_element_by_xpath(“”) #先定位frame彈框
driver.switch_to_frame(ifr) #再跳轉到frame彈框
2. 設定預設解碼方式
Import sys
Sys.setdefaultencoding(“utf8”)
3. 封測試套以及寫報告
myfile="C:\Users\Administrator\Desktop\\tinyshop\\report\\report.html" #C:\Users\Administrator\Desktop\tinyshop\report\report.html
mysuit=open(myfile,"wb")
suite=unittest.TestSuite()
suite.addTest(address_buy("test001"))
runner=HTMLTestRunner.HTMLTestRunner(title=u"花錢",stream=mysuit,description=u"沒別的,就是有錢")
runner.run(suite)
mysuit.close()
4. unittest.Test對用例管理的過程
importunittest
classcase(unittest.TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def testa(self):
pass
def testd(self):
pass
def testc(self):
pass
if__name__=="__main__":
unittest.main()
先執行setup,再執行test開頭的用例,最後執行teardown
所有用例必須以test開頭
當裡面有很多用例,掃描所有以test開頭的用例,先執行初始化,所有用例按字母順序執行,最後teardownt退出
unittest.main()表示執行所有test開頭的case
5. 執行測試套
runner=unittest.TextTestRunner()
runner.run(套名)
6. 讀取類裡面所有的用例,可以實現多類一起測試
suite1 =unittest.TestLoader().loadTestsFromTestCase(類名) #注意:類名沒有()
suite =unittest.TestSuite([suite1])
unittest.TextTestRunner().run(suite)