seleniumデータ駆動テスト--簡単な例

1254 ワード

from selenium import webdriver
import unittest
import ddt,time

@ddt.ddt
class datadriver(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox(executable_path='f://geckodriver')

    @ddt.data([' ',' '],[' ',' '],[' ',' '])

    @ddt.unpack
    def test_datadriverByObj(self,testdata,expectdata):
        url = 'http://www.baidu.com'
        self.driver.get(url)
        self.driver.implicitly_wait(10)
        try:
            self.driver.find_element_by_id('kw').send_keys(testdata)
            self.driver.find_element_by_id('su').click()
            time.sleep(3)
            # 
            self.assertTrue(expectdata in self.driver.page_source)
        except :
            print(' ')

    def tearDown(self):
        self.driver.quit()


if __name__=='__main__':
    unittest.main()

unpack装飾器を追加したのは元祖、リスト、辞書を分解してテストケースに伝えることです.
通常、dataのデータはパラメータに従ってテスト例に渡され、dataにメタグループ、リスト、辞書などのデータが含まれている場合、デフォルトはpack(パッケージ)であり、1つのリストが変数として関数に渡される変数である.リストのデータを分解する場合は@unpackを付けなければなりません.
@data([a,b],[c,d],[f,g])に@unpackがない場合、[a,b]リストは、パラメータとして試験用例に@unpackが渡され、[a,b]が分解され、2つのパラメータa,bとして試験用例にそれぞれ渡される