"""
编程题
打开 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入门编程总结学习于龙腾)的更多相关文章

  1. 自动化测试Java一:Selenium入门

    From: https://blog.csdn.net/u013258415/article/details/77750214 Selenium入门 欢迎阅读Selenium入门讲义,本讲义将会重点介 ...

  2. Selenium自动化测试Python一:Selenium入门

    Selenium入门 欢迎阅读Selenium入门讲义,本讲义将会重点介绍Selenium的入门知识以及Selenium的前置知识. 自动化测试的基础 在Selenium的课程以前,我们先回顾一下软件 ...

  3. Struts2入门3 深入学习

    Struts2入门3 深入学习 处理结果和异常 前言: Struts学习的差不多了,还有最后的一点就收官了就是结果处理和异常处理.前面学习Struts主要围绕就是Action以及struts.xml配 ...

  4. 【转】50条大牛C++编程开发学习建议

    每个从事C++开发的朋友相信都能给后来者一些建议,但是真正为此进行大致总结的很少.本文就给出了网上流传的对C++编程开发学习的50条建议,总结的还是相当不错的,编程学习者(不仅限于C++学习者)如果真 ...

  5. 免考final linux提权与渗透入门——Exploit-Exercise Nebula学习与实践

    免考final linux提权与渗透入门--Exploit-Exercise Nebula学习与实践 0x0 前言 Exploit-Exercise是一系列学习linux下渗透的虚拟环境,官网是htt ...

  6. 前端PHP入门-001-为什么学习PHP?

    写在前面的话 可能不知道能坚持多久,现在的我喜欢纯文字的描述! 希望能坚持写完,也是对自己的一个鞭策! 总顾及别人,那谁来顾及你! 为什么学习PHP? PHP入门简单,学习入门易入手[呵呵,都这么说, ...

  7. 50条大牛C++编程开发学习建议

    每个从事C++开发的朋友相信都能给后来者一些建议,但是真正为此进行大致总结的很少.本文就给出了网上流传的对C++编程开发学习的50条建议,总结的还是相当不错的,编程学习者(不仅限于C++学习者)如果真 ...

  8. msp430入门编程50

    msp430中项目编程套路 msp430入门编程 msp430入门学习

  9. msp430入门编程47

    msp430中C语言的人机交互--菜单退出 msp430入门编程 msp430入门学习

随机推荐

  1. Mysql 的数据导入导出

    一. mysqldump工具基本用法,不适用于大数据备份   1. 备份所有数据库: mysqldump -u root -p --all-databases > all_database_sq ...

  2. Skill 导出所有Layer信息用于tapeout

    https://www.cnblogs.com/yeungchie/ 用于在 tapeout 前要走的流程,foundry 会需要你上传一份芯片用到的所有 Layer 的 excel 文档. TAB ...

  3. bzoj 3436小K的农场

    3436: 小K的农场 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 2327 Solved: 1105 [Submit][Status][Discu ...

  4. MR程序的几种提交运行模式

    本地模式运行 1-在windows的eclipse里面直接运行main方法 将会将job提交给本地执行器localjobrunner 输入输出数据可以放在本地路径下 输入输出数据放在HDFS中:(hd ...

  5. node.js 使用----相关常用命令总结

    node.js 使用----相关常用命令总结 1. 下载并安装node.js 2. 设置全局模块存放的目录 2.1 查看默认配置 npm config ls 2.2 修改全局模块存放目录 npm co ...

  6. Ef Core增加Sql方法

    [AttributeUsage(AttributeTargets.Class|AttributeTargets.Method)] public class DbFunAttribute : Attri ...

  7. 我的强迫症系列之@Builder和建造者模式

    前言 备受争议的Lombok,有的人喜欢它让代码更整洁,有的人不喜欢它,巴拉巴拉一堆原因.在我看来Lombok唯一的缺点可能就是需要安装插件了,但是对于业务开发的项目来说,它的优点远远超过缺点. 我们 ...

  8. 【AHOI2009】中国象棋 题解(线性DP+数学)

    前言:这题主要是要会设状态,状态找对了问题迎刃而解. --------------------------- 题目描述 这次小可可想解决的难题和中国象棋有关,在一个N行M列的棋盘上,让你放若干个炮(可 ...

  9. requests-html库轻体验-HTMLSession下载表情包

    requests-html实战,HTMLSession下载斗图啦最新表情包 前言 在这篇文章之前,我写了requests入门实践02_下载斗图拉最新表情包用正则表达式提取url,来下载斗图啦最新表情包 ...

  10. Python精选库大全,建议收藏留用!

    Python为啥这么火,这么多人学,就是因为简单好学,功能强大,整个社区非常活跃,资料很多.而且这语言涉及了方方面面,比如自动化测试,运维,爬虫,数据分析,机器学习,金融领域,后端开发,云计算,游戏开 ...