python selenium chrome 测试
#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from time import sleep def search(driver, main_material_code):
autocompelete_input(driver, "vwMaterialForStandBy2_MainMaterial_search1", main_material_code)
btnfind = driver.find_element_by_link_text("查询")
btnfind.click() def autocompelete_input(cd, name, input_str):
iu_main = cd.find_element_by_id(name)
iu = iu_main.find_element(by=By.CLASS_NAME,value="mini-buttonedit-input")
iu.clear()
iu.send_keys(input_str)
sleep(1)
iu.send_keys(Keys.ENTER)
iu.send_keys(Keys.ENTER) def grid_input(cd, str):
zlist = cd.find_elements_by_class_name("mini-grid-editwrap")
print("数量:")
print(len(zlist))
zlast_el = len(zlist) - 1
input = zlist[zlast_el].find_element(by=By.CLASS_NAME ,value="mini-buttonedit-input")
input.send_keys(str)
sleep(1)
input.send_keys(Keys.ENTER)
input.send_keys(Keys.ENTER) options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")
options.add_argument("disable-infobars") driver = webdriver.Chrome(chrome_options=options)
driver.implicitly_wait(30)
#driver.maximize_window()
driver.get("http://192.168.0.1") driver.find_element_by_id("txtName").send_keys("test")
driver.find_element_by_id("txtPassword").send_keys("123")
driver.find_element_by_id("BtnLogin").click() driver.find_element_by_link_text("data").click()
driver.find_element_by_link_text("backup").click() sleep(4) frame = driver.find_element(by="id",value="main")
driver.switch_to.frame(frame)
product_list = ["F-1", "F-2"]
material_list = ["E-1", "E-2", "E-3"] btnfind = driver.find_element_by_link_text("查询")
btndel = driver.find_element_by_link_text("删除") driver.find_element_by_id("collapse_search_button").click() search(driver, material_list[0]) sleep(2) rows = driver.execute_script("return vwMaterialForStandBy_datagrid2.data.length;") sleep(1)
print("行数:" + str(rows))
if rows >0 :
driver.execute_script("vwMaterialForStandBy_datagrid2.selectAll(true);")
sleep(1)
btndel.click()
sleep(1)
driver.find_element_by_class_name("mini-messagebox-buttons").find_element(by=By.XPATH ,value="//*[text()='确定']").click()
print("删除了") driver.find_element_by_id("vwMaterialForStandBy2_btnadd").click()
sleep(1)
btnadd = driver.find_element_by_id("btnadd_productcode_item")
for item in product_list:
btnadd.click()
grid_input(driver, item) sleep(2) btnadd = driver.find_element_by_id("btnadd_material_item")
for item in material_list:
btnadd.click()
grid_input(driver,item) sleep(2) driver.find_element_by_id("BatchAddWindow").find_element(by=By.LINK_TEXT ,value="保存").click() #driver.quit()
python selenium chrome 测试的更多相关文章
- Python + Selenium +Chrome 批量下载网页代码修改【新手必学】
Python + Selenium +Chrome 批量下载网页代码修改主要修改以下代码可以调用 本地的 user-agent.txt 和 cookie.txt来达到在登陆状态下 批量打开并下载网页, ...
- Docker环境下运行python+selenium+chrome
Docker环境下运行python+selenium+chrome docker运行时占用的资源非常少,而且能将环境进行有效的隔离,可以快速的进行部署,因此可以将docker与selenium结合实现 ...
- Python selenium chrome 环境配置
Python selenium chrome 环境配置 一.参考文章: 1. 记录一下python easy_install和pip安装地址和方法 http://heipark.iteye.com/b ...
- Python selenium chrome打包exe后禁用控制台输出滚动日志
Python selenium chrome打包exe后,在运行的过程中,如果遇到需要input()输入时,会发现被不断滚动刷新的日志把命令行输入快速顶掉了,通过查阅资料不断实践,发现以下方法有效: ...
- python+selenium+Chrome options参数
python+selenium+Chrome options参数 Chrome Options常用的行为一般有以下几种: 禁止图片和视频的加载:提升网页加载速度. 添加代理:用于翻墙访问某些页面,或者 ...
- chrome浏览器爬虫WebDriverException解决采用python + selenium + chrome + headless模式
WebDriverException: Message: unknown error: Chrome failed to start: crashed 第一种:如果出现下面情况: chrome浏览器有 ...
- Python+Selenium+Chrome 的一个案例
第一步,下载chromeDrive:http://npm.taobao.org/mirrors/chromedriver(我下载的是2.43版本的chromedriver_win32.zip) 下载之 ...
- 在Centos7上安装Python+Selenium+Chrome+Chromedriver
1.下载Chrome 上一篇文章已经演示过了Python+Selenium+Firefox+Geckodriver安装步骤并通过自动化脚本打开百度 因此当前只需要安装Chrome和Chromedriv ...
- Python&Selenium 数据驱动测试【unittest+ddt+xml】
一.摘要 本博文将介绍Python和Selenium做自动化测试时,基于unittest框架,借助ddt模块,使用xml文件作为测试输入. 二.xml文件 保存路径:D:\\Programs\\Pyt ...
随机推荐
- 【a703】求逆序对(线段树的解法)
Time Limit: 10 second Memory Limit: 2 MB 问题描述 给定一个序列a1,a2...an.如果存在i小于j 并且ai大于aj,那么我们称之为逆序对,求给定序列中逆序 ...
- js进阶 10-7 简单的伪类选择器可以干什么
js进阶 10-7 简单的伪类选择器可以干什么 一.总结 一句话总结:伪类选择器是冒号. 1.学而不用,有什么用? 多用啊,在项目中多用 2.简单的伪类选择器可以干什么? 除某元素以外,某元素的一切索 ...
- 【codeforces 765A】Neverending competitions
[题目链接]:http://codeforces.com/contest/765/problem/A [题意] 给你一个人的n个行程 行程都是从家到某个地方或从某个地方到家; 且是无序的,且如果到了非 ...
- NYOJ 36 最长公共子序列 (还是dp)
这个好多算法书上都有,不仅限于<算法导论> 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描写叙述 咱们就不拐弯抹角了,如题.须要你做的就是写一个程序,得出最长公 ...
- 一起学Python:多线程-共享全局变量
多线程-共享全局变量 from threading import Thread import time g_num = 100 def work1(): global g_num for i in r ...
- Python应用库大全总结
学python,想必大家都是从爬虫开始的吧.毕竟网上类似的资源很丰富,开源项目也非常多. python学习网络爬虫主要分3个大的版块:抓取,分析,存储 当我们在浏览器中输入一个url后回车,后台会发生 ...
- 【a202】&&【9208】输油管道问题
Time Limit: 10 second Memory Limit: 2 MB 问题描述 某石油公司计划建造一条由东向西的主输油管道.该管道要穿过一个有n 口油井的油 田.从每口油井都要有一条输油管 ...
- cxf maven 依赖 No message body writer foud.. contenttype:application/json
最近使用cxf发布rest服务时遇到了如题的异常,最后发现是缺少依赖的问题.ps:我并没有使用spring cxf基本运行需要如下依赖 1 <dependency> <groupId ...
- Node.js学习疑惑整理
1.Node.js 在调用某个包时,会首先检查包中 package.json 文件的 main 字段,将其作为 包的接口模块,如果 package.json 或 main 字段不存在,会尝试寻找 in ...
- pycharm输出乱码如\xe9\x9d\x92\xe8\x9b\x99\xe7\x8e\x8b\xe5\xad\x90转成中文
转自:https://blog.csdn.net/baidu_19473529/article/details/54949453 利用Python解决unicode编码问题,有些json在控制台打印也 ...