python自动化测试(四):ECShop后台:商品分类添加

这篇具有很好参考价值的文章主要介绍了python自动化测试(四):ECShop后台:商品分类添加。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前置条件:

本地部署:ECShop的版本是3.0.0、Google版本是

Google Chrome 65.0.3325.162 (正式版本) (32 位) 

Google驱动的selenium版本是3.11.0

目录

前置代码

一、登录(后台登录)

二、进入商品分类页面

三、子页面

四、返回父级/最外层页面

五、点击添加分类按钮

六、输入分类

6.1 输入分类名称

6.2 上级分类 -- 下拉菜单的实现

6.3 输入 数量单位

6.4 输入排序

6.5 单选框

6.6 多选框

6.7 点击确定按钮

6.8 A下拉框对应不同的B下拉框

七、结束进程


前置代码
# coding=utf-8
from selenium import webdriver
from selenium.webdriver.support.select import Select
import time
driver = webdriver.Chrome()
url = "http://localhost/ecshop/admin/privilege.php?act=login"
driver.get(url)
# 最大化浏览器窗口
driver.maximize_window()
# 添加全局的等待时间
driver.implicitly_wait(10)

这里我是部署了一个本地的ECSHOP项目,所以该篇就以我的项目为准设置了

一、登录(后台登录)
# 一、登录
# 输入用户名
driver.find_element_by_name("username").send_keys("admin")
# 输入密码
driver.find_element_by_name("password").send_keys("t1194783")
driver.find_element_by_class_name("btn-a").click()

运行,登录成功,然后进入到后台页面

二、进入商品分类页面
# 点击商品分类
driver.find_element_by_link_text("商品分类").click()

然后这里跑代码,是出问题了,找不到元素

那么有可能是页面中包含了子页面的问题

python自动化测试(四):ECShop后台:商品分类添加,python,开发语言

三、子页面

去检查一下上图的列表,发现他是被一个标签<frame>包裹的

python自动化测试(四):ECShop后台:商品分类添加,python,开发语言

而这个标签,相当于独立页面的意思

在HTML中,<frame>标签用于定义一个框架(也称为窗口或浏览器窗口的一部分)。

这使得可以在浏览器中显示多个不同的网页,使它们在同一个窗口内分开。

那么,就先进入到子页面,也就是id为menu-frame的frame标签中

进入子页面的方法

driver.switch_to.frame(“main-frame”)

进入子页面
通过id或者name时可以直接将id或者name放到frame()函数的括号中直接切换子页面
driver.switch_to.frame(“main-frame”)
如果是通过其他六种方式定位子页面,我们需要将完整的定位语句放在括号中,才能正确切换子页面
#进入子页面
ele=driver.find_element_by_xpath("//frame[@id='main-frame']")
driver.switch_to.frame(ele)

driver.switch_to.frame() #旧方法
driver.switch_to_frame() #新方法
# 二、商品分类页面
# 1、进入子页面
driver.switch_to.frame("menu-frame")
# 2、点击商品分类
driver.find_element_by_link_text("商品分类").click()

python自动化测试(四):ECShop后台:商品分类添加,python,开发语言

这样子就可以成功跳转了

四、返回父级/最外层页面

现在所处的页面范围是在左侧列表的frame标签里面,所以我们得往上退回去

python自动化测试(四):ECShop后台:商品分类添加,python,开发语言

那么,返回父级页面的语法是:driver.switch_to.parent_frame()

但是这里不返回父级,我们返回到最外层

返回最外层页面
driver.switch_to.default_content()

# 三、返回最外层
driver.switch_to.default_content()
五、点击添加分类按钮

python自动化测试(四):ECShop后台:商品分类添加,python,开发语言

点击该按钮,右侧的页面同样被frame标签分割了,所以也需要访问到子页面,这里可以用xpath的方式去访问这个子页面

# 四、点击添加分类
# 进入子页面
ele = driver.find_element_by_xpath("//frame[@id='main-frame']")
driver.switch_to_frame(ele)
time.sleep(2)
# 点击添加分类
driver.find_element_by_xpath("//html/body/h1/span[1]/a").click()

python自动化测试(四):ECShop后台:商品分类添加,python,开发语言

六、输入分类
6.1 输入分类名称

python自动化测试(四):ECShop后台:商品分类添加,python,开发语言

# 输入分类名称
driver.find_element_by_name("cat_name").send_keys("服装")
6.2 上级分类 -- 下拉菜单的实现

python自动化测试(四):ECShop后台:商品分类添加,python,开发语言

1、先获取到select的下拉菜单元素

2、创建一个Select('元素') 对象

在获取到的Select对象中,有三个方法可以进行操作

s.select_by_index(index) # 根据索引从0开始选择一个选项
s.select_by_value(value) # 根据其值开始选择一个选项
s.select_by_visible_text("text") # 根据选项的文本,选择一个选项

这里先创建个对象

# 选择上级分类
ele = driver.find_element_by_name("parent_id")
s = Select(ele)

select_by_index(index)方法:

s.select_by_index(1)

python自动化测试(四):ECShop后台:商品分类添加,python,开发语言(这里也根据索引,选择了第二个选项)

select_by_value(val)方法:

如果是用这个方法,可以看一下select列表里面option元素对应的value属性值

python自动化测试(四):ECShop后台:商品分类添加,python,开发语言

选择value值为27的选项

s.select_by_value("27")

select_by_visible_text("文本")方法:

s.select_by_visible_text("顶级分类")
6.3 输入 数量单位
#输入数量单位
driver.find_element_by_name("measure_unit").send_keys("1000")
6.4 输入排序

python自动化测试(四):ECShop后台:商品分类添加,python,开发语言

此处的排序和数量单位虽然都是输入,但是排序是有默认值的,这个时候,先获取排序的元素,通过方法:clear() 清空数据,再进行输入

#输入排序
driver.find_element_by_name("sort_order").clear()
driver.find_element_by_name("sort_order").send_keys("10")
6.5 单选框

python自动化测试(四):ECShop后台:商品分类添加,python,开发语言

单选框的话可以通过xpath去定位,用序号的方法

#选择是否显示(是)
driver.find_element_by_xpath("(//input[@name='is_show'])[1]").click()
#选择是否显示在导航栏
driver.find_element_by_xpath("(//input[@name='show_in_nav'])[2]").click()

去审查一下元素

python自动化测试(四):ECShop后台:商品分类添加,python,开发语言

单选框的input标签的name属性值是一致的,那点击顺序按序号获取就好了

6.6 多选框

python自动化测试(四):ECShop后台:商品分类添加,python,开发语言

这里要点击几个,就按序号点击几次,写几行点击事件就好了

#选择设置首页推荐(精品)
driver.find_element_by_xpath("(//input[@name='cat_recommend[]'])[1]").click()
#选择设置首页推荐(最新)
driver.find_element_by_xpath("(//input[@name='cat_recommend[]'])[2]").click()

(点击第一个和第二个)

6.7 点击确定按钮
#点击确定按钮
driver.find_element_by_xpath("//input[@type='submit']").click()
6.8 A下拉框对应不同的B下拉框

python自动化测试(四):ECShop后台:商品分类添加,python,开发语言

# 1、先获取到A下拉框,然后
ele_a = driver.find_element_by_xpath(
    "//*[@id=\"tbody-attr\"]/tbody/tr/td/select[1]")
a = Select(ele_a)
a.select_by_visible_text("精品手机")

# 2、获取B的下拉
ele_b = driver.find_element_by_xpath(
    "//*[@id=\"tbody-attr\"]/tbody/tr/td/select[2]")
b = Select(ele_b)
b.select_by_visible_text("上市日期")

python自动化测试(四):ECShop后台:商品分类添加,python,开发语言文章来源地址https://www.toymoban.com/news/detail-719525.html

七、结束进程
time.sleep(5)
driver.quit()

到了这里,关于python自动化测试(四):ECShop后台:商品分类添加的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python自动化测试5大框架类型,你怎么Python实现自动化测试?

    我们需要一个什么样的框架 既然要搭一个框架,我们首先得弄明白我们需要一个什么样的框架,这个框架要支持什么功能? 框架主要的作用就是帮助我们编写更加简单而且好维护的用例,让我们把主要精力放在测试用例的设计上,那么我们就需要把所有额外的东西抽象出来

    2024年02月06日
    浏览(62)
  • Python Selenium UI自动化测试_python 自动化ui测试

    2.2 安装selenium pip install selenium pip install selenium==2.53.0 2.3 下载webdriver驱动 以chrome浏览器为例 查看chrome浏览器版本:在地址栏输入 chrome://version chromedriver下载地址:http://chromedriver.storage.googleapis.com/index.html 下载与浏览器版本对应的chrome driver 将下载好的chrome driver 解压,并放至到

    2024年04月14日
    浏览(75)
  • 使用Python进行自动化测试【第163篇—自动化测试】

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 自动化测试是软件开发过程中不可或缺的一部分,它可以提高测试效率、减少重复工作,并确保软件质量。Python是一种流行的编程语言,有许

    2024年04月17日
    浏览(40)
  • App自动化测试|Appium+Python自动化测试环境搭建

    搭建过程步骤如下: 安装jdk并配置好环境变量(jdk版本1.8以上) 安装android-sdk并配置好环境变量;具体步骤见:Android Studio安装(推荐使用这种方法安装SDK) - 环境配置 - 测试人社区 安装安卓模拟器 安装node.js(官网下载安装最新版本) ;下载地址:下载 | Node.js 中文网 找到wind

    2024年02月12日
    浏览(51)
  • Selenium+python怎么搭建自动化测试框架、执行自动化测试用例、生成自动化测试报告、发送测试报告邮件

    本人在网上查找了很多做自动化的教程和实例,偶然的一个机会接触到了selenium,觉得非常好用。后来就在网上查阅各种selenium的教程,但是网上的东西真的是太多了,以至于很多东西参考完后无法系统的学习和应用。 以下整理的只是书中自动化项目的知识内容,介绍怎么搭

    2024年02月05日
    浏览(67)
  • python自动化测试- 自动化框架及工具

    手续的关于测试的方法论,都是建立在之前的文章里面提到的观点: 功能测试不建议做自动化 接口测试性价比最高 接口测试可以做自动化 后面所谈到的  测试自动化  也将围绕着  接口自动化  来介绍。 本系列选择的测试语言是 python 脚本语言。由于其官方文档已经对原理

    2024年02月22日
    浏览(66)
  • python自动化测试-自动化基本技术原理

    在之前的文章里面提到过:做自动化的首要本领就是要会  透过现象看本质  ,落实到实际的IT工作中就是  透过界面看数据 。 掌握上面的这样的本领可不是容易的事情,必须要有扎实的计算机理论基础,才能看到深层次的本质东西。 数据库应用系统  可能是最典型的网络

    2024年02月10日
    浏览(41)
  • Python自动化测试

    一、什么是框架 框架是由大佬开发或者专业的研发团队研发的技术骨架,框架是一个半成品,框架是对常用的功能,基础的代码进行封装的一个工具,这个工具对外提供了一些API,其他的开发者只需要调用框架的接口即可,可以省去很多代码的编写,从而提高工作效率。 二

    2024年02月03日
    浏览(51)
  • 从零搭建完整python自动化测试框架(UI自动化和接口自动化

    总体框架 PO模式、DDT数据驱动、驱动 框架技术选择 框架运行结果 各用例对应的定义方式(PO/DDT) 测试执行结果 从零开始搭建项目 一、开发环境搭建 二、新建项目 三、基础功能实现 1. 配置功能实现(Conf) 2. 日志功能实现(Log) 3. 读取EXCEL实现(data) 4. 邮件发送实

    2024年02月07日
    浏览(69)
  • 从零搭建完整python自动化测试框架(UI自动化和接口自动化)

    总体框架 PO模式、DDT数据驱动、驱动 框架技术选择 框架运行结果 各用例对应的定义方式(PO/DDT) 测试执行结果 从零开始搭建项目 一、开发环境搭建 二、新建项目 三、基础功能实现 1. 配置功能实现(Conf) 2. 日志功能实现(Log) 3. 读取EXCEL实现(data) 4. 邮件发送实

    2024年02月04日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包