Web UI自动化测试实例(登入网易云音乐账户)——(一)简单版_Python+selenium+面向对象/ 面向过程实现

网易云登入账户所有步骤和流程如下:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

测试

简单测试场景:输入错误的手机号码,登入失败
实现方式:

  1. 面向过程实现,以操作过程为导向,实现自动化测试
  2. 面向对象实现,采用业务封装,调用实现
1. 面向过程
#coding =utf-8
from selenium import  webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.implicitly_wait(4)
driver.maximize_window()
#打开网易云音乐网站
driver.get('https://music.163.com/')
#定位首页->登入按钮,并点击
driver.find_element(By.CSS_SELECTOR ,'a.link.s-fc3').click()
#定位并选择登入页面中的‘其他登入模式’
driver.find_element(By.CSS_SELECTOR ,'a.u-btn2.other').click()
#判断服务条款有没有勾选
if not driver.find_element(By.CSS_SELECTOR ,'input#j-official-terms').is_selected():
	driver.find_element(By.CSS_SELECTOR ,'input#j-official-terms').click()
#选择手机登入
driver.find_element(By.CSS_SELECTOR ,'a.u-btn2.u-btn2-2').click()
#输入手机号码
driver.find_element(By.CSS_SELECTOR , 'input.j-phone.txt.u-txt').send_keys('165564464654')
#输入密码
driver.find_element(By.CSS_SELECTOR , 'input#pw.j-pwd.u-txt').send_keys('253156454121')
#点击登入
driver.find_element(By.CSS_SELECTOR , 'a.j-primary.u-btn2.u-btn2-2').click()

#判断登入是否失败
if driver.find_element(By.CSS_SELECTOR, 'i.u-icn.u-icn-25').is_displayed:
	print ' login  failed'

driver.quit()
2. 面向对象
# coding: utf-8
from selenium import  webdriver
from selenium.webdriver.common.by import By


class Login():

	_login_locator = (By.CSS_SELECTOR, 'a.link.s-fc3')
	_other_login_mode_locator =(By.CSS_SELECTOR ,'a.u-btn2.other')
	_phone_number_login_locator = (By.CSS_SELECTOR ,'a.u-btn2.u-btn2-2')
	_privacy_policy_checkout_loactor = (By.CSS_SELECTOR ,'input#j-official-terms')
	_input_phone_number_locator = (By.CSS_SELECTOR , 'input.j-phone.txt.u-txt')
	_input_password_locator = (By.CSS_SELECTOR , 'input#pw.j-pwd.u-txt')
	_login_button_locator = (By.CSS_SELECTOR, 'a.j-primary.u-btn2.u-btn2-2')
	_locate_mark_locator = (By.CSS_SELECTOR, 'i.u-icn.u-icn-25')

	def __init__(self):
		self.driver = webdriver.Chrome()
		self.driver.implicitly_wait(4)
		self.driver.maximize_window()
		self.driver.get('https://music.163.com/')

	def click_login(self):
		self.driver.find_element(*self._login_locator).click()

	def select_other_login_mode(self):
		self.driver.find_element(*self._other_login_mode_locator).click()

	def check_privacy_policy_checkout(self):
		if not self.driver.find_element(*self._privacy_policy_checkout_loactor).is_selected():
			self.driver.find_element(*self._privacy_policy_checkout_loactor).click()

	def phone_number_login(self):	
		self.driver.find_element(*self._phone_number_login_locator).click()

	def input_phone_number_account(self):
		self.driver.find_element(*self._input_phone_number_locator).send_keys('165564464654')
	
	def input_password(self):
		self.driver.find_element(*self._input_password_locator).send_keys('253156454121')
	
	def click_login_button(self):
		self.driver.find_element(*self._login_button_locator).click()

	def is_login_scuccessfully(self):
		if self.driver.find_element(*self._locate_mark_locator).is_displayed:
			#print ' login  failed'
			raise 'login  failed'

	def close_window(self):
		self.driver.quit()

if __name__ == '__main__':
	login = Login()
	login.click_login()
	login.select_other_login_mode()
	login.check_privacy_policy_checkout()
	login.phone_number_login()
	login.input_phone_number_account()
	login.input_password()
	login.click_login_button()
	login.is_login_scuccessfully()
	login.close_window()

测试结果如下:
在这里插入图片描述

这两个代码缺点:
①确实对页面加载时间,页面元素是否加载的判断
②断言草率
后续再补充吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值