selenium入门编程总结学习于龙腾)
"""
编程题
打开 http://ip/ecshop/wwwroot/admin/privilege.php?act=login
登录(admin/123456)
点击商品管理-》添加新商品-》输入商品名称:dell电脑、分类:电脑、价格:3999,点击添加
断言是否添加成功page_source有没有添加商品成功。
""" from selenium import webdriver
from time import sleep # 启动Chrome
# driver = webdriver.Chrome()
driver = webdriver.Firefox() # 该处修改,输入商品名后,概率性出现输入文字后,又自动被清空。验证是否是浏览器影响
# 最大化窗口
driver.maximize_window() driver.get('http://ip/newecshop/admin/privilege.php?act=login')
driver.find_element('name', 'username').send_keys('admin')
driver.find_element('name', 'password').send_keys('123456')
driver.find_element('name', 'remember').click()
driver.find_element('class name', 'button2').click() sleep(0.1)
# driver.save_screenshot(r'F:\1.png')
driver.switch_to.frame('header-frame') # 切换到顶部frame
exit_text = driver.find_elements('link text', '退出')
# assert u'退出' in exit_text
if len(exit_text) > 0: # 判断是否登录成功
print('登陆成功!!!') driver.switch_to.parent_frame() # 切换到父类frame
driver.switch_to.frame('menu_frame') # 切换到商品列表所在frame driver.find_element('link text', '商品管理').click() # 点击商品管理
sleep(0.1)
driver.find_element('link text', '添加新商品').click() # 添加新商品 driver.switch_to.parent_frame() # 切换到父类frame
driver.switch_to.frame('main_frame') # 切换到添加商品详情页面所在frame
sleep(0.1)
newsGoods_list = driver.find_elements('id', 'search_id')
if len(newsGoods_list) > 0: # 判断是否登录成功
print('进入>>管理中心- 添加新商品') sleep(3)
driver.find_element('name', 'goods_name').send_keys('dell电脑') # 输入商品名称:dell电脑 sleep(1)
driver.find_element('id', 'cat_name').send_keys('电脑') # input框只能send_key()
du_box = driver.find_elements('class name', 'level0')
print(len(du_box))
du_box[-1].click() # 该位置非select下拉框,不能直接选择,且元素ID是动态变化的,所有需要先部分搜索再取列表选择
# sleep(3) 该下拉框有毒
# driver.find_element('xpath', '/html/body/div[2]/div[2]/form/table[1]/tbody/tr[3]/td[2]/div/ul/li[25]/a/span[2]').click() sleep(2) # 先清空默认值0,再输入价格
driver.find_element('name', 'shop_price').clear() # 输入本地售价
driver.find_element('name', 'shop_price').send_keys('3999')
driver.find_element('id', 'goods_info_submit').click() # 保存 # 判断页面文字提示
# add_suc = driver.find_element('css selector', 'body > div.list-div > div > table > tbody > tr:nth-child(1) > td:nth-child(2)').text
# print(add_suc)
# assert u'添加商品成功。' in add_suc sleep(1)
# 判断源码中是否包含添加商品成功
page_sc = driver.page_source
assert u'添加商品成功。' in page_sc sleep(5) # 缓口气
driver.quit()
selenium入门编程总结学习于龙腾)的更多相关文章
- 自动化测试Java一:Selenium入门
From: https://blog.csdn.net/u013258415/article/details/77750214 Selenium入门 欢迎阅读Selenium入门讲义,本讲义将会重点介 ...
- Selenium自动化测试Python一:Selenium入门
Selenium入门 欢迎阅读Selenium入门讲义,本讲义将会重点介绍Selenium的入门知识以及Selenium的前置知识. 自动化测试的基础 在Selenium的课程以前,我们先回顾一下软件 ...
- Struts2入门3 深入学习
Struts2入门3 深入学习 处理结果和异常 前言: Struts学习的差不多了,还有最后的一点就收官了就是结果处理和异常处理.前面学习Struts主要围绕就是Action以及struts.xml配 ...
- 【转】50条大牛C++编程开发学习建议
每个从事C++开发的朋友相信都能给后来者一些建议,但是真正为此进行大致总结的很少.本文就给出了网上流传的对C++编程开发学习的50条建议,总结的还是相当不错的,编程学习者(不仅限于C++学习者)如果真 ...
- 免考final linux提权与渗透入门——Exploit-Exercise Nebula学习与实践
免考final linux提权与渗透入门--Exploit-Exercise Nebula学习与实践 0x0 前言 Exploit-Exercise是一系列学习linux下渗透的虚拟环境,官网是htt ...
- 前端PHP入门-001-为什么学习PHP?
写在前面的话 可能不知道能坚持多久,现在的我喜欢纯文字的描述! 希望能坚持写完,也是对自己的一个鞭策! 总顾及别人,那谁来顾及你! 为什么学习PHP? PHP入门简单,学习入门易入手[呵呵,都这么说, ...
- 50条大牛C++编程开发学习建议
每个从事C++开发的朋友相信都能给后来者一些建议,但是真正为此进行大致总结的很少.本文就给出了网上流传的对C++编程开发学习的50条建议,总结的还是相当不错的,编程学习者(不仅限于C++学习者)如果真 ...
- msp430入门编程50
msp430中项目编程套路 msp430入门编程 msp430入门学习
- msp430入门编程47
msp430中C语言的人机交互--菜单退出 msp430入门编程 msp430入门学习
随机推荐
- 人车识别实验丨华为ModelArts VS 百度Easy DL硬核体验
摘要:想了解时下流行的自动驾驶相关AI模型吗?接下来就用华为云的ModelArts和百度的Easy DL带你体验一下AI平台是怎么进行模型训练的. 华为ModelArts自动学习 VS 百度Easy ...
- random随机数函数
- 11-13 模块_collections(不太重要)&time&random&os
random:随机数模块 os:和操作系统打交道的模块 sys:和Python解释器打交道的模块 序列化模块:Python中的数据类型和str转换的模块 http://www.cnblogs.com/ ...
- Python File readline() 方法
概述 readline() 方法用于从文件读取整行,包括 "\n" 字符.如果指定了一个非负数的参数,则返回指定大小的字节数,包括 "\n" 字符.高佣联盟 w ...
- PHP xml_set_default_handler() 函数
定义和用法 xml_set_default_handler() 函数为 XML 解析器建立默认的数据处理器.高佣联盟 www.cgewang.com 该函数规定在只要解析器在 XML 文件中找到数据时 ...
- Struts/Servlet,action转到jsp后,CSS失效,路径问题(struts2,jsp路径,action路径,action跳转,相对路径,绝对路径)
问题:使用struts2,如何处理action的路径?还有,在action转到的jsp中,如何写js,css,图 片的路径?(例如访问http://localhost/project/listUser ...
- [转]为什么阿里巴巴要禁用Executors创建线程池?
作者:何甜甜在吗 链接:https://juejin.im/post/5dc41c165188257bad4d9e69 来源:掘金 看阿里巴巴开发手册并发编程这块有一条:线程池不允许使用Executo ...
- MySQL-安装配置篇
一.MySQL二进制安装包安装 1.环境初始化 1)创建目录mkdir /app/database --安装路径 mkdir /data/3306 --存放数据路径 mkdir /binlog/330 ...
- SkyWalking APM8.1.0 搭建与项目集成使用
SkyWalking介绍 SkyWalking是什么? SkyWalking是一个可观测性分析平台和应用性能管理系统,提供分布式跟踪.服务网格遥测分析.度量聚合和可视化一体化解决方案,并支持多种开发语 ...
- 密码学系列——常见的加密方式(c#代码实操)
前言 说起加密方式,其实密码学的角度ASCII编码其实本身就是一种加密解密. 由于其公开,现在用于数字与字符的转换. 查看ASCII表可以去官网查查. 转换代码如下: static void Main ...