selenium系列--手把手写测试脚本
Posted 清安无别事
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium系列--手把手写测试脚本相关的知识,希望对你有一定的参考价值。
这里是清安,selenium断更了有一段时间了,主要是更新python去了,所以,今天我们来点稍微硬核的东西。简单的写个测试脚本,体验一下脚本的快乐。
项目地址:用户登录 - ShopXO企业级B2C电商系统提供商 - 演示站点
我们以此为例,我们来写一下登录注册的脚本。
首先我们先写打开地址的方法:
# -->>>清安<<<---
from selenium import webdriver
from time import sleep
# 1.打开项目地址
driver = webdriver.Chrome()
driver.get('http://39.98.138.157/shopxo/public/index.php?s=/index/user/logininfo.html')
# 放入全局隐士等待加载
driver.implicitly_wait(10)
# 推出浏览器
driver.quit()
这里加入了全局隐士等待有原因的,让它慢慢加载10S,主要是为了渲染界面元素的出现,不然可能会因为网络原因或者其他的原因导致报错。
在点击注册按钮进入注册页面之前,我们可以写一个判断,判断它打开的网页是不是所需要的网页!以免进入的地方或者避免错误。
# -->>>清安<<<---
from selenium import webdriver
from time import sleep
# 1.打开项目地址
driver = webdriver.Chrome()
driver.get('http://39.98.138.157/shopxo/public/index.php?s=/index/user/logininfo.html')
# 放入全局隐士等待加载,让它慢慢加载10S,主要是为了渲染界面元素的出现,不然会报错
driver.implicitly_wait(10)
ele = driver.find_elements_by_xpath('/html/body/div[4]/div/div[2]/div[2]/form/div[1]/label')[0].text
print(ele)
if ele == '登录账号':
print('进入的是登录注册界面哦')
else:
raise Exception("请检查页面是否正确")
# 点击登录按钮
driver.find_element_by_xpath('/html/body/div[4]/div/div[2]/div[1]/a').click()
driver.quit()
else那里你也可以直接print('请检查页面信息'),这个不做多的要求。
进入注册界面后我们可以将输入框做一些判断然后再输入内容:
# -->>>清安<<<---
from selenium import webdriver
from time import sleep
# 1.打开项目地址
driver = webdriver.Chrome()
driver.get('http://39.98.138.157/shopxo/public/index.php?s=/index/user/logininfo.html')
# 放入全局隐士等待加载,让它慢慢加载10S,主要是为了渲染界面元素的出现,不然会报错
driver.implicitly_wait(10)
ele = driver.find_elements_by_xpath('/html/body/div[4]/div/div[2]/div[2]/form/div[1]/label')[0].text
print(ele)
if ele == '登录账号':
print('进入的是登录注册界面哦')
else:
raise Exception("请检查页面是否正确")
# 点击登录按钮
driver.find_element_by_xpath('/html/body/div[4]/div/div[2]/div[1]/a').click()
sleep(2)
ele1 = driver.find_element_by_xpath('//label[contains(text(),"用户名")]')
if ele1.text == '用户名':
driver.find_element_by_name('accounts').send_keys('qingan')
sleep(1)
ele2 = driver.find_element_by_xpath('//label[contains(text(),"设置登录密码")]')
if ele2.text == '设置登录密码':
driver.find_element_by_name('pwd').send_keys('qingan')
# 勾选阅读并同意
driver.find_element_by_class_name('am-icon-checked').click()
# 点击注册按钮
driver.find_elements_by_xpath('//button[contains(text(),"注册")]')[0].click()
driver.quit()
当然这里如果账户有了就会有提示,告诉你账户已经存在了,这时候我们就直接点击登录跳转过去登录即可:
# -->>>清安<<<---
from selenium import webdriver
from time import sleep
# 1.打开项目地址
driver = webdriver.Chrome()
driver.get('http://39.98.138.157/shopxo/public/index.php?s=/index/user/logininfo.html')
# 放入全局隐士等待加载,让它慢慢加载10S,主要是为了渲染界面元素的出现,不然会报错
driver.implicitly_wait(10)
ele = driver.find_elements_by_xpath('/html/body/div[4]/div/div[2]/div[2]/form/div[1]/label')[0].text
print(ele)
if ele == '登录账号':
print('进入的是登录注册界面哦')
else:
raise Exception("请检查页面是否正确")
# 点击登录按钮
driver.find_element_by_xpath('/html/body/div[4]/div/div[2]/div[1]/a').click()
sleep(2)
ele1 = driver.find_element_by_xpath('//label[contains(text(),"用户名")]')
if ele1.text == '用户名':
driver.find_element_by_name('accounts').send_keys('qinganan')
sleep(1)
ele2 = driver.find_element_by_xpath('//label[contains(text(),"设置登录密码")]')
if ele2.text == '设置登录密码':
driver.find_element_by_name('pwd').send_keys('qingan')
# 勾选阅读并同意
driver.find_element_by_class_name('am-icon-checked').click()
# 点击注册按钮
driver.find_elements_by_xpath('//button[contains(text(),"注册")]')[0].click()
sleep(2)
try:
ele3 = driver.find_element_by_xpath('//*[@id="common-prompt"]/p').text
if ele3 == '账号已存在':
print('账号已经存在')
# 点击跳转
driver.find_element_by_xpath('/html/body/div[4]/div/div/div/div[1]/a').click()
# 输入账号密码登录
driver.find_element_by_name('accounts').send_keys('anan')
driver.find_element_by_name('pwd').send_keys('qingan')
driver.find_element_by_xpath('/html/body/div[4]/div/div[2]/div[2]/form/div[3]/button').click()
else:
ele1 = driver.find_element_by_xpath('//label[contains(text(),"用户名")]')
if ele1.text == '用户名':
driver.find_element_by_name('accounts').send_keys('qinganan')
sleep(1)
ele2 = driver.find_element_by_xpath('//label[contains(text(),"设置登录密码")]')
if ele2.text == '设置登录密码':
driver.find_element_by_name('pwd').send_keys('qingan')
# 勾选阅读并同意
driver.find_element_by_class_name('am-icon-checked').click()
# 点击注册按钮
driver.find_elements_by_xpath('//button[contains(text(),"注册")]')[0].click()
sleep(2)
driver.quit()
except:
driver.quit()
这里面用到了try,不懂了可以去看看我写的python自动化快速上手的基础内容,有点类似于ifelse。但是还是有所不同。
注意:代码自己敲一遍,下一章我们来将脚本升级为框架,其中会多很多的内容,所以这里一定要自己敲一遍。
以上是关于selenium系列--手把手写测试脚本的主要内容,如果未能解决你的问题,请参考以下文章
《手把手教你》系列基础篇(七十三)-java+ selenium自动化测试-框架设计基础-TestNG实现启动不同浏览器(详解教程)
Selenium+java - 手把手一起搭建一个最简单自动化测试框架
《手把手教你》系列技巧篇(四十七)-java+ selenium自动化测试-判断元素是否显示(详解教程)
《手把手教你》系列基础篇(七十二)-java+ selenium自动化测试-框架设计基础-TestNG简单介绍(详解教程)