在selenium python中定义自定义函数

时间:2016-08-23 11:30:12

标签: python selenium

我如何定义自定义函数然后在测试函数中使用它,它在我运行单个测试用例时起作用,但在运行多个测试用例时不起作用。

#!/bin/bash

json_string=$(<product.info.json)
echo "$json_string"

vers=%major_version%.%patch_version%
date=`date +%%Y-%%m-%%d:%%H:%%M:%%S`

echo VERSION: $vers
echo DATE: $date

result_string=$json_string
result_string=${result_string/_DATE_/$date};
result_string=${result_string/_VERSION_/$vers};


echo "$result_string" > "User_Part/product.info.json"

json_string=$(<User_Part/product.info.json)
echo "$json_string

1 个答案:

答案 0 :(得分:0)

您可以使用unittest.setUpClass()来实例化类级driver实例。同样,如果需要,您可以使用tearDownClass()清除类级别变量。

由于setUpClass()tearDownClass()只会在Test类中运行一次,因此可以使用它来保证只有一个驱动程序。否则,将为每个测试方法运行setUp() - 每次都创建一个浏览器实例 - 这可能很慢并且可能内存效率低。

class AlphaTest(unittest.TestCase):

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

    def asserTrueId(self, value):
        self.assertTrue(self.driver.find_element_by_id(value))
        time.sleep(1)

    def test_flush_cache(self):
        self.asserTrueId("block-menu-menu-menu-for-directories")