ui测试部分知识点

1.  报错 selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH

步骤:到http://npm.taobao.org/mirrors/chromedriver/  下载对应chrome的chromedriver

我的chrome为下面这个版本,并选择下面这个版本的chromedriver:

  ui测试部分知识点_第1张图片

ui测试部分知识点_第2张图片

然后解压放在此目录中:

配置环境变量:将 C:\Program Files (x86)\Google\Chrome\Application ,添加到系统变量path中

再运行程序即可

2.iframe 定位,报错 selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element

可检查自己的代码是否有下面两点

A:

iframe = driver.find_element_by_tag_name('iframe')
driver.switch_to_frame(iframe)

B: 在定位之前,添加time.sleep(1) 

3. unittest  批量执行用例

import unittest

def all_case():
    case_dir = r"F:\PycharmProjects\test_unitest"
    testcase = unittest.TestSuite()
    discover = unittest.defaultTestLoader.discover(case_dir, pattern='test*.py')
    for test_suit in discover:
        for test_case in test_suit:
            testcase.addTest(test_case)
            print(testcase)
    return testcase


if __name__ == "__main__":
    runner = unittest.TextTestRunner()
    runner.run(all_case())

4.  python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决

下载地址: http://pan.baidu.com/s/1dEZQ0pz  

5. 装饰器

1.用setUp与setUpClass区别

setup():每个测试case运行前运行
teardown():每个测试case运行完后执行
setUpClass():必须使用@classmethod 装饰器,所有case运行前只运行一次
tearDownClass():必须使用@classmethod装饰器,所有case运行完后只运行一次

2.@是修饰符,classmethod是python里的类方法

打开浏览器操作放到前置setUpClass(cls)里,这样就可以实现打开一次浏览器,执行多个case了

 @classmethod
    def setUpClass(cls):
        cls.driver = webdriver.Firefox()
        url = "http://www.cnblogs.com/yoyoketang/"
        cls.driver.get(url)
        cls.driver.implicitly_wait(30)

你可能感兴趣的:(ui测试知识点)