selenium+python自动化测试系列(一):登录

流程说明

  1. 打开登录url,如http://192.168.10.6/login
  2. 在用户名输入框中输入登录的用户名,如test001
  3. 在密码是输入框中输入密码,如testgood001
  4. 点击登录页面的登录按钮,
  5. 登录成功页面,断言登录成功

线性操作

根据上面的步骤提示下面代码显示登录操作,如下

from selenium import webdriver
import unittest
import sys

# 打开登录url,如http://192.168.10.6/login
# 在用户名输入框中输入登录的用户名,如test001
# 在密码是输入框中输入密码,如testgood001
# 点击登录页面的登录按钮,
# 登录成功页面,断言登录成功

reload(sys)
sys.setdefaultencoding('utf8')
class TestLogin(unittest.TestCase):
	def setUp(self):
		#指定浏览器
		self.driver = webdriver.Chrome()
		#打开url
		self.driver.get("http://192.168.10.6/login")

	#登录操作
	def test_login(self):
		title = self.driver.title
		print(title)
		now_url = self.driver.current_url
		print(now_url)
		username = "test001"
		password = "testgood001"
		#执行登录操作
		#用户名的定位
		un = self.driver.find_element_by_id("username")
		un.clear()
		un.send_keys(username)
		#密码的定位
		pwd = self.driver.find_element_by_id("password")
		pwd.clear()
		pwd.send_keys(password)
		#点击登录
		self.driver.find_element_by_css_selector(".btn.btn-success.btn-block").click()
		#登录成功断言
		login_name = self.driver.find_element_by_xpath('html/body/div[3]/div[2]/ul/li[1]/a/strong').text
		login_name = login_name.strip('您好:')
		assert login_name == username

	#关闭浏览器
	def tearDown(self):
		self.driver.quit()

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

上面代码显示的是登录成功的正常用例;实际操作中,针对登录不仅仅有正常用例,还有异常用例,如用户名为空,密码为空,用户名错误,密码错误等;我们不能一个用例编写一个py文件,如果这样操作从本质而言相反增加了工作量。
既然问题出来了,那么如何解决这个问题呢?
思路:针对登录而言,所有的步骤都是一样的,唯一不同的就是登录的用户名和密码,所以我们可以封装登录步骤,然后只需要专注不同测试用例中的登录的用户名和密码的验证即可。
这里为了后续测试的简便,使用了selenium中的po模式,即针对每个功能的操作页面进行封装,

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值