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入门学习
随机推荐
- python从放弃到放弃
本文目录 第一篇:python基础 第二篇:数据类型 第三篇:文件处理 第四篇:函数 第五篇:模块与包 第六篇:常用模块
- python处理excel文件(xls和xlsx)
一.xlrd和xlwt 使用之前需要先安装,windows上如果直接在cmd中运行python则需要先执行pip3 install xlrd和pip3 install xlwt,如果使用pycharm ...
- Mosquitto的搭建(websocket、ssl、auth-plug)及坑点总结
Mosquitto的搭建及坑点总结 主要讲述的是eclipse-mosquitto的C语言版本的搭建,主要是为了从1.4.15版本升级到1.6.9,为解决一些webSocket和数据格式问题. 因为根 ...
- Java开发环境配置之安装JDK
一:序言摘要 学习过Java的人都知道,如果想要开发一套java程序,首先需要做的准备工作就是配置JDK.JDK是 Java 语言的软件开发工具包,它主要用于移动设备.嵌入式设备上的java应用程序. ...
- 常用mongo使用方式(限本人)
mongoose连接详情参考官网 在项目中新建db文件夹 connect.js连接mongo: const mongoose=require('mongoose'); mongoose.connect ...
- matplotlib绘制子图
fig,subs = plt.subplots(2,2) subs[0][0].plot(data_math_C1) subs[0][0].set_title('C_1 曲线') subs[0][1] ...
- FPAG_Microblaze_PWM_定时器
由于Xilinx底层库的定时器没有PWM例程,调试过程中费了不少劲.生产PWM需要两个定时器同时工作,一个控制频率,一个控制占空比,位数可通过硬件设置. #include "xtmrctr_ ...
- PHP curl_multi_setopt函数
(PHP 5 >= 5.5.0) curl_multi_setopt — 设置一个批处理cURL传输选项. 说明 bool curl_multi_setopt ( resource $mh , ...
- PHP xpath() 函数
定义和用法 xpath() 函数运行对 XML 文档的 XPath 查询.高佣联盟 www.cgewang.com 如果成功,该函数返回 SimpleXMLElements 对象的一个数组.如果失败, ...
- Blob分析之 ball.hdev
* ball.hdev: Inspection of Ball Bonding * 关闭窗体更新 dev_update_window ('off')*关闭窗体dev_close_window ()*打 ...