博客園selenium自動化登陸腳本

import unittest
from selenium import webdriver
from time import sleep


class LoginCase(unittest.TestCase):
def setUp(self):
self.dr = webdriver.Firefox()
self.dr.maximize_window()

# 定義登陸方法
def login(self, username, password):
self.dr.get('https://passport.cnblogs.com/user/signin') # cnblog登陸頁面
self.dr.find_element_by_id('input1').send_keys(username)
self.dr.find_element_by_id('input2').send_keys(password)
self.dr.find_element_by_id('signin').click()

def test_login_success(self):
'''用戶名、密碼正確'''
self.login('zhanglining', 'asdjlka') # 正確用戶名和密碼
sleep(3)
link = self.dr.find_element_by_id('lnk_current_user')
self.assertTrue('小寧的雜貨鋪。。。' in link.text) # 用assertTrue(x)方法來斷言 bool(x) is True 登陸成功後用戶暱稱在lnk_current_user裏
self.dr.get_screenshot_as_file("D:\\login_success.jpg") # 截圖 可自定義截圖後的保存位置和圖片命名

def test_login_pwd_error(self):
'''用戶名正確、密碼不正確'''
self.login('zhanglining', 'zhanglining') # 正確用戶名,錯誤密碼
sleep(2)
error_message = self.dr.find_element_by_id('tip_btn').text
self.assertIn('用戶名或密碼錯誤', error_message) # 用assertIn(a,b)方法來斷言 a in b '用戶名或密碼錯誤'在error_message裏
self.dr.get_screenshot_as_file("D\\login_pwd_error.jpg")

def test_login_pwd_null(self):
'''用戶名正確、密碼爲空'''
self.login('zhanglining', '') # 密碼爲空
error_message = self.dr.find_element_by_id('tip_input2').text
self.assertEqual(error_message, '請輸入密碼') # 用assertEqual(a,b)方法來斷言 a == b 請輸入密碼等於error_message
self.dr.get_screenshot_as_file("D:\\login_pwd_null.jpg")

def test_login_user_error(self):
'''用戶名錯誤、密碼正確'''
self.login('zhangling', '@zhanglining') # 密碼正確,用戶名錯誤
sleep(2)
error_message = self.dr.find_element_by_id('tip_btn').text
self.assertIn('用戶名或密碼錯誤', error_message) # 用assertIn(a,b)方法來斷言 a in b
self.dr.get_screenshot_as_file("D:\\login_user_error.jpg")

def test_login_user_null(self):
'''用戶名爲空、密碼正確'''
self.login('', '@zhanglining') # 用戶名爲空,密碼正確
error_message = self.dr.find_element_by_id('tip_input1').text
self.assertEqual(error_message, '請輸入登陸用戶名') # 用assertEqual(a,b)方法來斷言 a == b
self.dr.get_screenshot_as_file("D:\\login_user_null.jpg")

def tearDown(self):
sleep(2)
print('自動測試完畢!')
self.dr.quit()


if __name__ == '__main__':
unittest.main()
相關文章
相關標籤/搜索