#coding=utf-8from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common import keysfrom selenium.webdriver.support import selectfrom selenium.common import exceptionsimport unittest,time,reclass Baidu(unittest.TestCase):    #setUp 用于设置初始化的部分,在测试用例执行前,这个方法中的函数将先被调用。这里将浏览器的调用和URL的访问放到初始化部分。#    def setUp(self):         self.driver=webdriver.Firefox()        self.driver.implicitly_wait(30)        self.base_url='http://www.baidu.com/'        self.verificationErrors=[]  #脚本运行时,错误的信息将被打印到这个列表中#        self.accept_next_alert=True  #是否继续接受下一个警告#    #百度搜索用例    def test_baidu_serch(self):        driver=self.driver        driver.get(self.base_url)        driver.find_element_by_id("kw").send_keys("selenium webdriver")        driver.find_element_by_id("su").click()        time.sleep(2)        driver.quit()    #百度设置用例    def test_baidu_set(self):        driver=self.driver        #进入搜索设置页        driver.get(self.base_url+'gaoji/preferences.html')          m=driver.find_element_by_name('NR')         #设置每页搜索结果为100条,先找到ID=NR的标签,再找到ID=NR标签下的option标签value值等于100的选择按钮        m.find_element_by_xpath("//option[@value='100']").click()        time.sleep(2)        #保存设置的信息        driver.find_element_by_xpath("//input[@value='保存设置']").click()        time.sleep(2)        n=driver.switch_to_alert()        n.accept()    def tearDown(self):        self.driver.quit()        self.assertEqual([],self.verificationErrors)        '''        tearDown 方法在每个测试方法执行后调用,这个地方做所有清理工作,如退出浏览器等。         self.assertEqual([], self.verificationErrors) 是个难点,        对前面verificationErrors方法获得的列表进行比较;如查verificationErrors的列表不为空,输出列表中的报错信息。'''if __name__=="__main__":    unittest.main() #执行用例#'''执行结果如下:Ran 2 tests in 30.719s  执行测试完所有测试用例,用了70.719Sok 没有问题如果你在用例中故意设置一个错误,例如:百度设置用例中增加这样一行代码,查找到name为DR的标签,并单击它,因为这个是没有的,找不到这个标签,系统会报错,driver.find_element_by_name('DR').click()这时执行结果显示如下:Ran 2 tests in 70.719sFAILED (errors=1)'''