標籤:自動化測試 selenium
#!/usr/bin/python # -*- coding: utf-8 -*-'''Created on 2015-04-27@author: beyondzhou@name: logintest.py'''import unittestfrom ddt import ddt, data, unpackfrom selenium import webdriverimport osimport timefrom selenium.common.exceptions import NoSuchElementExceptionfrom selenium.webdriver.common.by import By@ddtclass LoginTest(unittest.TestCase): @classmethod def setUp(cls): # Get the driver of chrome chromedriver = "C:\Program Files\Google\Chrome\Application\chromedriver.exe" os.environ["webdriver.chrome.driver"] = chromedriver cls.browser = webdriver.Chrome(chromedriver) cls.browser.get('http://10.10.51.150') time.sleep(1) @data(("admin", "pica8", "Configuration"), ("admin", "pica9", "Invalid username or password")) @unpack def test_login_in(self, username, password, expected_value): # test login in self.browser.find_element_by_xpath("//input[@placeholder='Username']").send_keys(username) self.browser.find_element_by_xpath("//input[@placeholder='Password']").send_keys(password) self.browser.find_element_by_tag_name("button").click() time.sleep(1) self.assertTrue(self.is_content_present("%s" % expected_value)) def is_element_present(self, how, what): """ Utility method to check presence of an element on page :params how: by locator type :params what: locator value """ try: self.browser.find_element(by=how, value=what) except NoSuchElementException, _: return False return True def is_content_present(self, what): """ Utility method to check presence of an element on page :params what: content value """ try: self.browser.find_element(by=By.XPATH, value="//*[contains(text(), '%s')]" % what) except NoSuchElementException, _: return False return True @classmethod def tearDown(cls): # define when you need cls.browser.quit() if __name__ == '__main__': unittest.main(verbosity=2)
Result:
test_login_in_1___admin____pica8____Configuration__ (__main__.LoginTest) ... oktest_login_in_2___admin____pica9____Invalid_username_or_password__ (__main__.LoginTest) ... ok----------------------------------------------------------------------Ran 2 tests in 17.688sOK
基於Python ddt, selenium資料驅動測試執行個體1