#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 测试的更多相关文章

  1. Python + Selenium +Chrome 批量下载网页代码修改【新手必学】

    Python + Selenium +Chrome 批量下载网页代码修改主要修改以下代码可以调用 本地的 user-agent.txt 和 cookie.txt来达到在登陆状态下 批量打开并下载网页, ...

  2. Docker环境下运行python+selenium+chrome

    Docker环境下运行python+selenium+chrome docker运行时占用的资源非常少,而且能将环境进行有效的隔离,可以快速的进行部署,因此可以将docker与selenium结合实现 ...

  3. Python selenium chrome 环境配置

    Python selenium chrome 环境配置 一.参考文章: 1. 记录一下python easy_install和pip安装地址和方法 http://heipark.iteye.com/b ...

  4. Python selenium chrome打包exe后禁用控制台输出滚动日志

    Python selenium chrome打包exe后,在运行的过程中,如果遇到需要input()输入时,会发现被不断滚动刷新的日志把命令行输入快速顶掉了,通过查阅资料不断实践,发现以下方法有效: ...

  5. python+selenium+Chrome options参数

    python+selenium+Chrome options参数 Chrome Options常用的行为一般有以下几种: 禁止图片和视频的加载:提升网页加载速度. 添加代理:用于翻墙访问某些页面,或者 ...

  6. chrome浏览器爬虫WebDriverException解决采用python + selenium + chrome + headless模式

    WebDriverException: Message: unknown error: Chrome failed to start: crashed 第一种:如果出现下面情况: chrome浏览器有 ...

  7. Python+Selenium+Chrome 的一个案例

    第一步,下载chromeDrive:http://npm.taobao.org/mirrors/chromedriver(我下载的是2.43版本的chromedriver_win32.zip) 下载之 ...

  8. 在Centos7上安装Python+Selenium+Chrome+Chromedriver

    1.下载Chrome 上一篇文章已经演示过了Python+Selenium+Firefox+Geckodriver安装步骤并通过自动化脚本打开百度 因此当前只需要安装Chrome和Chromedriv ...

  9. Python&Selenium 数据驱动测试【unittest+ddt+xml】

    一.摘要 本博文将介绍Python和Selenium做自动化测试时,基于unittest框架,借助ddt模块,使用xml文件作为测试输入. 二.xml文件 保存路径:D:\\Programs\\Pyt ...

随机推荐

  1. signed 与 unsigned 有符号和无符号数

    unsigned int a = 0; unsigned int b = -1; // b 为 0xffffffff unsigned int c = a - 1; // c 为 0xffffffff

  2. 前端切图:CSS实现隐藏滚动条同时又可以滚动

    CSS 实现隐藏滚动条同时又可以滚动 原始功能: 图片发自简书App 添加伪类之后的功能: 图片发自简书App 完整demo如下: <!DOCTYPE html> <html> ...

  3. svn删除文件或文件夹后提交失败及解决

    svn删除文件夹后提交显示Item 'XXXX' is out of date 有这么几种可能, 1.别人已经提交代码.恰好这个文件或文件夹有改动,这样的情况须要先回复再更新再删除再提交. 2.没有人 ...

  4. Expression Blend 的点滴(2)--利用可视化状态创建神奇翻转动画

    原文:Expression Blend 的点滴(2)--利用可视化状态创建神奇翻转动画 首先,来看下实现后的效果: 关于VisulaState VisualState 指定控件处于特定状态时的外观.例 ...

  5. eclipse 编写scala代码时提示computing additional info

    window->proference,把方框中那两个选项去掉不选,保存即可(或者只选择scala completions(java sources)),(只不过这么做之后就没有代码提示了)遇到这 ...

  6. poj1995 Raising Modulo Numbers【高速幂】

    Raising Modulo Numbers Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 5500   Accepted: ...

  7. 2014-07-20 体验到的不是北漂easy

    北京首出租天,房子很潮,这房子我住了一个多月,我希望我真的不会活得很长,世界上只有一个真正的租房,只有明确的家是最好的. 550每月,不包括水电费.我不知道该怎么形容,房间里闪耀的太阳.一个窗口,一扇 ...

  8. 今天犯了个小错误:_dataArray.count>1 和_dataArray.count>0搞混淆了

    _dataArray.count>1 和_dataArray.count>0搞混淆了:当数据为一条时,条件不成立.应该_dataArray.count>=1  或者>0   ( ...

  9. Docker for Windows 安装

    原文:Docker for Windows 安装 前言: 环境:windows10专业版 64位 正文: 官方下载地址:https://hub.docker.com/editions/communit ...

  10. 【27.40%】【codeforces 599D】Spongebob and Squares

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...