前言java
登陸這個場景在寫用例的時候常常會有,咱們能夠把登陸封裝成一個方法,而後把帳號和密碼參數化,這樣之後用的登陸的時候,只需調用這個方法就好了python
1、登陸方法web
1.把輸入帳號、輸入密碼、點擊登陸按鈕三個步驟寫成一個方法學習
2.而後把輸入的帳號和密碼參數化優化
2、用例ui
1.下面的用例能夠調用前面寫的登陸方法,這樣不用每次都去走登陸流程url
2.判斷是否登陸成功,我這裏是取的登陸成功後的帳戶名spa
3、判斷方法封裝3d
1.若是用上面的方法去判斷的話,有個缺陷,當登陸不成功的時候,頁面是不會跳轉的,因此查找元素會報異常:blog
NoSuchElementException: Message: Unable to locate element: {"method":"id","selector":"lnk_current_user"}
2.這個時候就簡單封裝下判斷方法:獲取到帳戶名返回Ture;沒有獲取到返回False
4、優化後案例
1.優化後的登陸案例以下,這樣看起來更清楚了
5、參考代碼
# coding:utf-8
from selenium import webdriver
import unittest
import time
class Bolg(unittest.TestCase):
u'''登陸博客'''
def setUp(self):
self.driver = webdriver.Firefox()
url = "https://passport.cnblogs.com/user/signin"
self.driver.get(url)
self.driver.implicitly_wait(30)
def login(self, username, psw):
u'''這裏寫了一個登陸的方法,帳號和密碼參數化'''
self.driver.find_element_by_id("input1").send_keys(username)
self.driver.find_element_by_id("input2").send_keys(psw)
self.driver.find_element_by_id("signin").click()
time.sleep(3)
def is_login_sucess(self):
u'''判斷是否獲取到登陸帳戶名稱'''
try:
text = self.driver.find_element_by_id("lnk_current_user").text
print text
return True
except:
return False
def test_01(self):
u'''登陸案例參考:帳號,密碼本身設置'''
self.login(u"上海-悠悠", u"xxxx") # 調用登陸方法
# 判斷結果
result = self.is_login_sucess()
self.assertTrue(result)
def test_02(self):
u'''登陸案例參考:帳號,密碼本身設置'''
self.login(u"上海-悠悠", u"xxxx") # 調用登陸方法
# 判斷結果 # 交流QQ羣:232607095
result = self.is_login_sucess()
self.assertTrue(result)
# def test_01(self):
# u'''登陸案例參考:帳號,密碼本身設置'''
# self.login(u"上海-悠悠", u"xxxx") # 調用登陸方法
# # 獲取登陸後的帳號名稱
# text = self.driver.find_element_by_id("lnk_current_user").text
# print text
# # 斷言實際結果與指望結果一致
# self.assertEqual(text, u"上海-悠悠")
#
# def test_02(self):
# u'''登陸案例參考:帳號,密碼本身設置'''
# self.login(u"上海-悠悠", u"oooo") # 調用登陸方法
# # 獲取登陸後的帳號名稱
# text = self.driver.find_element_by_id("lnk_current_user").text
# print text # 交流QQ羣:232607095
# # 斷言實際結果與指望結果一致
# self.assertEqual(text, u"上海-悠悠")
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main()
學習過程當中有遇到疑問的,能夠加selenium(python+java) QQ羣交流:646645429
以爲對你有幫助,就在右下角點個贊吧,感謝支持!
selenium+python高級教程》已出書:selenium webdriver基於Python源碼案例
(購買此書送對應PDF版本)