一.测试环境准备
在线平台教育网址http://xczx2-portal.itheima.net/
账户:13810000002 密码:888itcast.CN764%...
Pycharm Community(代码编译器,需要注意由于会自动生成文件所需要的基础包,下载后续包的过程中需要)
python-3.8.10解释器(需要在Pycharm中下载)
Katalon Recorder 5.7.5(谷歌插件,可以再谷歌扩展程序里下载,或去官方网页下载https://www.crx4chrome.com/crx/62796/)
selenium (Pycharm中下载,下载最新版便可以)
谷歌浏览器及谷歌浏览器驱动ChromeDriver(浏览器驱动版本需要与浏览器版本匹配)
二.定位学成在线教育平台首页元素
1.使用浏览器自带的开发者工具进行定位
鼠标右键进入检查
进入后会出现右方前端的界面,在其内容中可以将页面展示的内容一一对应
点击左方虚线方框在点击自己想要定位的内容,便可以获得所在位置
如题所示
2.使用浏览器插件Katalon Recorder进行定位
点击扩展程序打开Katalon Recorder
在左边Test Suites中点击右边加号,可以添加测试用例
点击右上角的Record进行录制,过程中可以进行各种操作,例如点击课程-点击编程开发-点击登录-输入账号密码-点击登录-点击个人中心-点击退出登录
如果网站自动保存密码,则会获取两次账号密码的输入,点击Play test Case运行时点击继续便可以。
以下的获取的结果
点击Export便可以查看运行的脚本
还会提供各种语言的脚本,但是这种脚本很容易出错,虽然不会直接导出使用,但是可以作为辅助公具来使用。
三.测试登录和退出功能
代码如下,需要注意退出部分用到了鼠标部分的知识
ac=ActionChains(driver)#创建一个鼠标 xf = driver.find_element(By.CLASS_NAME, "dropbtn")#定位到下拉窗 ac.move_to_element(xf)#将鼠标悬浮在下拉窗上,以此来显示出退出界面 ac.perform()#鼠标执行,如果没有这条命令上面关于鼠标悬浮的指令是不会启用
import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
from selenium.webdriver.support.select import Select
from selenium.webdriver.common.by import By
import unittest
class UntitledTestCase(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
# 设置浏览器窗口最大化
self.driver.maximize_window()
# 设置等待时间
self.driver.implicitly_wait(10)
# 访问学成在线教育平台
self.driver.get("http://xczx2-portal.itheima.net/")
def test_login_and_logout(self, expect="13810000002"):
driver = self.driver
# 定位"登录"文本链接并单击
driver.find_element(By.LINK_TEXT,"登录").click()
username = driver.find_element(By.XPATH,"/html/body/div/div/div[3]"
"/form/div[1]/div/div/input")
username.clear()
username.send_keys("13810000002")
password = driver.find_element(By.XPATH,"/html/body/div/div/div[3]"
"/form/div[2]/div/div/input")
password.clear()
password.send_keys("888itcast.CN764%...")
# 定位"个人中心"文本链接并单击
driver.find_element(By.CLASS_NAME,"el-button--primary").click()
time.sleep(2)
# 判断是否成功登录
# account = self.driver.find_element(By.CLASS_NAME,"dropbtn").text
# assert expect == account
# 定位"个人中心"文本链接并单击
driver.find_element(By.LINK_TEXT,"个人中心").click()
time.sleep(2)
ac=ActionChains(driver)
xf = driver.find_element(By.CLASS_NAME, "dropbtn")
ac.move_to_element(xf)
ac.perform()
# 定位"退出"文本链接并单击
driver.find_element(By.ID,"btnLogout").click()
print("成功退出学成在线教育平台")
def tearDown(self):
self.driver.quit()
四.测试页面跳转功能
整个过程只需要定位到自己要点击的具体位置,然后让代码进行点击便可以完成
验证是否跳转成功的页面重点在于,获取其中具有标识性的内容进行对比验证
测试代码
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By
import unittest
expect_one = "最新"
expect_two = "获取验证码"
driver = webdriver.Chrome()
url = "http://xczx2-portal.itheima.net/"
driver.get(url)
driver.maximize_window()
# 定位"课程"链接文本并单击
driver.find_element(By.ID,"course-page").click()
sleep(2)
# 通过获取页面中"最新"文本判断课程页面是否跳转成功
newest = driver.find_element(By.LINK_TEXT,"最新").text
if expect_one == newest:
print("课程页面跳转成功")
# 定位"注册"链接文本并单击
driver.find_element(By.LINK_TEXT,"注册").click()
sleep(2)
# 通过获取注册页面中的"获取验证码"文本判断注册页面是否跳转成功
verification_code = driver.find_element(By.XPATH,"/html/body/div/div/div[4]/form/div[2]""/div/div/div[2]/button/span").text
if expect_two == verification_code:
print("注册页面跳转成功")
else:
print("注册页面跳转失败")
# 定位"返回首页"链接文本并单击
driver.find_element(By.CLASS_NAME,"register").click()
sleep(2)
print("返回首页面跳转成功")