wiki:webtest/base_module

Version 1 (modified by chenyang, 12 years ago) (diff)

--

设计HouseTest类,它派生自unittest.TestCase类
它是整个自动化测试系统的基类,实现普通用户登陆,管理员登陆,断言元素是否存,处理弹框等基本功能。

......

class HouseTest(unittest.TestCase):

	.......

	def setUp(self):

		browser = {
				'ie' : lambda : self.ie(),
				'firefox' : lambda : self.firefox(),
				'chrome' : lambda : self.chrome()
				}
		
		self.driver = browser['firefox']()
		
		self.driver.implicitly_wait(10)
		self.base_url = "http://localhost.pchouse.com.cn/"
		#self.base_url = "http://dev13.pchouse.com.cn:84/"
		self.verificationErrors = []
		self.accept_next_alert = True

	def tearDown(self):
		self.driver.quit()
		self.assertEqual([], self.verificationErrors)

	def user_login(self):
		''' kods登陆 '''
		driver = self.driver
		driver.get(self.base_url + "/bbs7/index.do")
		driver.find_element_by_id("username").send_keys("kods")
		driver.find_element_by_id("password").send_keys("123456")
		driver.find_element_by_id("submit").click()

	def admin_login(self):
		''' 管理员lifeng登陆 '''
		self.driver.get(self.base_url + "/bbs7/admin.do")
		self.driver.find_element_by_id("username").send_keys("lifeng")
		self.driver.find_element_by_id("password").send_keys("123456")
		self.driver.find_element_by_css_selector("input.button").click()
		self.driver.find_element_by_name("password").send_keys("123456")
		self.driver.find_element_by_name("Input").click()

	def is_element_present(self, how, what):
		try: self.driver.find_element(by=how, value=what)
		except NoSuchElementException, e: return False
		return True
    
	def is_alert_present(self):
		try: self.driver.switch_to_alert()
		except NoAlertPresentException, e: return False
		return True
    
	def close_alert_and_get_its_text(self):
		try:
			alert = self.driver.switch_to_alert()
			alert_text = alert.text
			if self.accept_next_alert:
				alert.accept()
			else:
				alert.dismiss()
			return alert_text
		finally: self.accept_next_alert = True

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