前言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版本)