python自动化测试(九):EcShop添加商品功能

前置条件:

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

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

py的selenium版本是3.11.0

目录

一、前置代码

二、添加商品操作

[2.1 点击添加商品](#2.1 点击添加商品)

[2.2 添加名称、分类、品牌](#2.2 添加名称、分类、品牌)

[2.3 添加价格、勾选促销、添加促销](#2.3 添加价格、勾选促销、添加促销)

[2.4 清除促销输入框的只读属性](#2.4 清除促销输入框的只读属性)

[2.5 清除并设置促销日期(开始与结束)](#2.5 清除并设置促销日期(开始与结束))

[2.6 上传图片(pywinauto)](#2.6 上传图片(pywinauto))

[2.7 确定提交](#2.7 确定提交)


一、前置代码

(打开ECSHOP后台,登录)

python 复制代码
# coding=utf-8
# 导入自动化的模块
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.support.select import Select
import time
import pywinauto
# 定义一个浏览器
driver = webdriver.Chrome()
url = "http://localhost/ecshop/admin/privilege.php?act=login"
# 打开一个浏览器
driver.get(url)
# 最大化窗口尺寸
driver.maximize_window()
# 添加全局的等待时间
driver.implicitly_wait(10)
# 输入用户名
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()

二、添加商品操作

2.1 点击添加商品

python 复制代码
# 2.1 点击添加商品
# 切换子页面
driver.switch_to.frame("menu-frame")
# 点击添加新商品
driver.find_element_by_link_text("添加新商品").click()
# 换回最外层默认页面
driver.switch_to.default_content()
# 切换到表单子页面
driver.switch_to.frame("main-frame")
time.sleep(1)

2.2 添加名称、分类、品牌

python 复制代码
# 输入商品名称
driver.find_element_by_name("goods_name").send_keys("海尔冰箱")
# 选择商品分类
ele = driver.find_element_by_name("cat_id")
s = Select(ele)
s.select_by_index(2)


# 选择商品品牌
ele = driver.find_element_by_name("brand_id")
s = Select(ele)
s.select_by_visible_text("海尔")

2.3 添加价格、勾选促销、添加促销

python 复制代码
# 输入商品价格
driver.find_element_by_name("shop_price").clear()
driver.find_element_by_name("shop_price").send_keys("3000.00")
# 勾选促销价
driver.find_element_by_id("is_promote").click()
# 输入促销价格
driver.find_element_by_id("promote_1").clear()
driver.find_element_by_id("promote_1").send_keys("2800.00")

2.4 清除促销输入框的只读属性

通过js获取到元素

python 复制代码
script = 'document.getElementById("promote_start_date").removeAttribute("readonly")'
driver.execute_script(script)
time.sleep(3)

2.5 清除并设置促销日期(开始与结束)

python 复制代码
# 设置促销日期
driver.find_element_by_id("promote_start_date").clear()
time.sleep(2)
driver.find_element_by_id("promote_start_date").send_keys("2023-10-10")
# 去除促销日期结束输入框的只读属性
script = 'document.getElementById("promote_end_date").removeAttribute("readonly")'
driver.execute_script(script)
# 输入促销结束日期
time.sleep(3)
driver.find_element_by_id("promote_end_date").clear()
time.sleep(2)
driver.find_element_by_id("promote_end_date").send_keys("2023-12-31")

2.6 上传图片(pywinauto)

python 复制代码
# 上传商品图片(通过pywinauto进行图片上传)
driver.find_element_by_name("goods_img").click()
time.sleep(2)
# 通过窗口打开
program = pywinauto.Desktop()
print(type(program))
# 通过弹框名称进入控件中
window = program['打开']
# 输入上传图片的地址
window['Edit'].type_keys(r"C:\Users\13195\Desktop\Logo.png")
# 点击打开按钮
window['Button'].click()

2.7 确定提交

python 复制代码
time.sleep(3)
driver.find_element_by_xpath("//input[@name='goods_id']/../input[2]").click()
time.sleep(10)
driver.quit()
相关推荐
xiaoye37084 小时前
Java 自动装箱 / 拆箱 原理详解
java·开发语言
ZTLJQ6 小时前
数据的基石:Python中关系型数据库完全解析
开发语言·数据库·python
夏霞6 小时前
c# signlar 客户端传递参数给服务端配置方法
开发语言·c#
迷藏4946 小时前
**发散创新:基于 Rust的开源权限管理系统设计与实战**在现代软件架构中,**权限控制**早已不
java·开发语言·rust·开源
FreakStudio6 小时前
lvgl-micropython、lv_micropython和lv_binding_micropython到底啥关系?一文读懂
python·单片机·嵌入式·面向对象·电子diy
2301_818419016 小时前
C++中的解释器模式变体
开发语言·c++·算法
小江的记录本7 小时前
【Redis】Redis全方位知识体系(附《Redis常用命令速查表(完整版)》)
java·数据库·redis·后端·python·spring·缓存
摇滚侠7 小时前
Java 项目《谷粒商城-1》架构师级Java 项目实战,对标阿里 P6-P7,全网最强,实操版本
java·开发语言
dinl_vin7 小时前
Python 数据分析入门系列(一):从NumPy开始
python·数据分析·numpy
biter down7 小时前
C++11 统一列表初始化+std::initializer_list
开发语言·c++