一只自动化测试小白的学习记录——Python+Selenium基于Web的自动化测试(实例练习)

也有两天没更新了 哎~这学期的课还挺多的 都是利用课余的一些时间来学习自动化测试(抱怨脸(╯▔皿▔)╯)

这两天我在练习的是一个相对完整的Web自动化测试,也是对前些日子学习内容的整合,具体来说如下:

1.打开浏览器

2.输入网址打开网页(我是以链家网为练习的,因为想到明年毕业后要租房子hhhhhh)

3.找到网页上我们需要的元素:登录元素、登录方式元素(可能会有多种登录方式,所以我选择的是最基础的账号密码登录)、账号元素、密码元素、确认登录元素

4.输入元素内容:账号和密码

5.检查登录结果

为了打开页面的稳定 我设置了等待时间

用了两种方法 一个是time.sleep 还有一个是Webdriverwait(小声嘀咕:听说sleep不是特别好,但是挺方便的...)

首先,先抛开上述的五步,把等待时间的方法先设置好 (之前不会用插入代码的功能,现在学会了!)

def get_ele_times(driver,times,func):
	return WebDriverWait(driver,times).until(func)

然后依次进行五个步骤,代码如下:

#打开Chrome浏览器模块
def openBrowser():
	return webdriver.Chrome()

#输入网址并打开网页页面模块
def  openUrl(driver,url):
	driver.get(url)
	driver.set_window_size(1300,800)

#定位网页上的五个元素(登录元素、登录方式元素、账号元素、密码元素、确认登录元素)
def findElements(browser,arg):
	if 'login_text' in arg:
		login_ele=get_ele_times(browser,5,lambda x:browser.find_element_by_link_text(arg['login_text']))
	login_ele.click()
	time.sleep(3)
	way_ele=browser.find_element_by_link_text(arg['way_text'])
	way_ele.click()
	time.sleep(1.5)
	account_ele=browser.find_element_by_css_selector(arg['account_select'])
	password_ele=browser.find_element_by_css_selector(arg['password_select'])
	confirm_ele=browser.find_element_by_css_selector(arg['confirm_select'])
	return account_ele,password_ele,confirm_ele


#输入元素内容
def sendVals(eletuple,arg):
	listkey=['name','pwd']
	i=0
	for key in listkey:
		eletuple[i].send_keys('')
		eletuple[i].clear()
		eletuple[i].send_keys(arg[key])
		i+=1
	time.sleep(2)
	eletuple[2].click()
	
#检查结果
def checkResults(browser,arg):
	try:
		browser.find_element_by_link_text(arg[check_text])
		print('Test Successfully')
	except:
		print('Test Unsuccessfully')

最后一起写在大函数login_test里面:

def login_test(ele_dict,user_dict):
	browser=openBrowser()
	openUrl(browser,ele_dict['url'])
	ele_tuple=findElements(browser,ele_dict)
	sendVals(ele_tuple,user_dict)
	checkResults(browser,ele_dict)

对了,还有主函数,里面主要是放一些数据量,比如url,账号,密码等等,这样,可以将方法和数据分离开来,不会那么的乱,

在下次测试的时候,还可以使用本次脚本,只不过把其中需要变的数据改一下就好了。

if __name__ == '__main__':
	url='http://bj.lianjia.com/?utm_source=baidu&utm_medium=pinzhuan&utm_term=biaoti&utm_content=biaotimiaoshu&utm_campaign=sousuo&ljref=pc_sem_baidu_ppzq_x'
	login_text="登录"
	way_text='账号密码登录'
	account_select='#con_login_user > form > ul > li.item.border-t.userName > input'
	password_select='#con_login_user > form > ul > li.item.border-b.pwd > input'
	confirm_select='#con_login_user > form > ul > li.li_btn > a'
	account='13823920110'
	password='abc123'
	check_text='请输入图形验证码'
	ele_dict={'url':url,'login_text':login_text,'way_text':way_text,'account_select':account_select,'password_select':password_select,'confirm_select':confirm_select,'check_text':check_text}
	user_dict={'name':account,'pwd':password}
	login_test(ele_dict,user_dict)
	time.sleep(5)

其实在学自动化测试之前,我也没什么Python基础,但是学校里上过Java课,有一些编程基础。不过,我更喜欢python一些,功能强大并且相比Java简洁不少。

ps:对了,上面的测试过程,我是默认以点击登录按钮并出现“请输入图形验证码”为测试成功的证明的,也查阅了一些如何测试验证码之类的资料,我...有些看不懂(T_T)...

你可能感兴趣的:(一只自动化测试小白的学习记录——Python+Selenium基于Web的自动化测试(实例练习))