卡片新增自动化脚本设计到:放大镜,下拉框,日期框,文本框,页面下拉到底部,上传文件等的取元数据,iframe存在很多个的时候定义def方法,其中iframe的值:360浏览器和火狐浏览器各不相同
#导入驱动的包和控制时间的包
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.by import By
import time
#卡片新增自动化脚本设计到的点:放大镜,下拉框,日期框,文本框,页面下拉到底部,上传文件等
#获取动态的frame
def iframe0():
time.sleep(2)
iframe0 = driver.find_elements_by_tag_name("iframe")
r0 = iframe0[0].get_attribute('id')
print('动态frame0:%s'%r0)
driver.switch_to.frame(r0)
def iframe1():
time.sleep(2)
iframe1 = driver.find_elements_by_tag_name("iframe")
r1 = iframe1[1].get_attribute('id')
print('动态frame1:%s'%r1)
driver.switch_to.frame(r1)
#初始化驱动
driver=webdriver.Firefox()
#设置要打开的网页链接
url='自己的网址'
#打开盛祺登录页面
driver.get(url)
#浏览器最大化
driver.maximize_window()
#等待页面加载完成
time.sleep(3)
#点击账号输入框
driver.find_element_by_id('showAccount').click()
#输入账号
driver.find_element_by_id('userAccount').send_keys(u'ctt')
#点击密码输入框
driver.find_element_by_id('showPassword').click()
#输入密码
driver.find_element_by_id('userPassword').send_keys(u'123456')
#点击登录按钮
driver.find_element_by_id('dengluBtn').click()
time.sleep(5)
#通过frame方式定位
driver.switch_to.frame("id_iframe")
#点击资产账
driver.find_element_by_xpath('/html/body/div[4]/div[1]/div[2]/div[3]/ul/li[2]/div/div[2]/span').click()
time.sleep(1)
#点击固定资产管理
driver.find_element_by_xpath('/html/body/div[4]/div[1]/div[2]/div[3]/ul/li[2]/ul/li[1]/div/div[2]').click()
time.sleep(1)
#点击卡片登记
driver.find_element_by_xpath('/html/body/div[4]/div[1]/div[2]/div[3]/ul/li[2]/ul/li[1]/ul/li[1]/div/div[2]').click()
time.sleep(1)
#退出frame方式定位
driver.switch_to.default_content()
#通过两层frame方式定位
driver.switch_to.frame("id_iframe")
driver.switch_to.frame("J_iframe_M160103A")
#点击新增
driver.find_element_by_xpath('/html/body/div[2]/div[1]/button[1]').click()
#退出两层frame方式定位
driver.switch_to.default_content()
#退出两层frame方式定位
driver.switch_to.default_content()
time.sleep(3)
#获取动态的frame
iframe1()
time.sleep(1)
#点击"其他"类型卡片
driver.find_element_by_xpath('/html/body/div/div[5]').click()
time.sleep(1)
#退出动态frame方式定位
driver.switch_to.default_content()
#通过两层frame方式定位
driver.switch_to.frame("id_iframe")
driver.switch_to.frame("J_iframe_M160103A")
#获取动态的frame
iframe0()
time.sleep(2)
#点击'使用部门'放大镜
driver.find_element_by_xpath('/html/body/div[2]/div[2]/div[1]/div/div[1]/div/div/table/tbody/tr[1]/td[4]/span/span/span').click()
#退出frame方式定位
driver.switch_to.default_content()
driver.switch_to.default_content()
driver.switch_to.default_content()
time.sleep(2)
#选择部门‘教务处’
driver.find_element_by_xpath('/html/body/div[6]/div[2]/div/div[3]/div[1]/ul/li/ul/li[8]/a/span[2]').click()
time.sleep(2)
#点击:确定 按键
driver.find_element_by_xpath('/html/body/div[6]/div[2]/div/div[4]/button[1]').click()
#通过两层frame方式定位
driver.switch_to.frame("id_iframe")
driver.switch_to.frame("J_iframe_M160103A")
#获取动态的frame
iframe0()
time.sleep(2)
#点击'教育分类代码'放大镜
driver.find_element_by_xpath('/html/body/div[2]/div[2]/div[1]/div/div[1]/div/div/table/tbody/tr[2]/td[2]/span/span/span').click()
#退出frame方式定位
driver.switch_to.default_content()
driver.switch_to.default_content()
driver.switch_to.default_content()
time.sleep(2)
#选择资产类别“图书”
driver.find_element_by_xpath('/html/body/div[6]/div[2]/div/div[3]/div[1]/ul/li/ul/li[11]/a/span[2]').click()
time.sleep(1)
#点击:确定 按键
driver.find_element_by_xpath('/html/body/div[6]/div[2]/div/div[4]/button[1]').click()
time.sleep(1)
#通过两层frame方式定位
driver.switch_to.frame("id_iframe")
driver.switch_to.frame("J_iframe_M160103A")
#获取动态的frame
iframe0()
time.sleep(2)
#点击'资产分类代码'放大镜
driver.find_element_by_xpath('/html/body/div[2]/div[2]/div[1]/div/div[1]/div/div/table/tbody/tr[2]/td[4]/span/span/span').click()
#退出frame方式定位
driver.switch_to.default_content()
driver.switch_to.default_content()
driver.switch_to.default_content()
time.sleep(2)
#点击'其他图书,档案'放大镜
driver.find_element_by_id('tsid_div_tree_12_span').click()
time.sleep(1)
#点击:确定 按键
driver.find_element_by_xpath('/html/body/div[6]/div[2]/div/div[4]/button[1]').click()
time.sleep(1)
#通过两层frame方式定位
driver.switch_to.frame("id_iframe")
driver.switch_to.frame("J_iframe_M160103A")
#获取动态的frame(好像区分360浏览器和火狐浏览器)
iframe0()
time.sleep(2)
#点击:点击:资产名称 输入框
driver.find_element_by_xpath('/html/body/div[2]/div[2]/div[1]/div/div[1]/div/div/table/tbody/tr[3]/td[2]/input').click()
#输入资产名称:c资产
driver.find_element_by_xpath('/html/body/div[2]/div[2]/div[1]/div/div[1]/div/div/table/tbody/tr[3]/td[2]/input').send_keys(u'c资产')
time.sleep(2)
#*********************************************日期控件**************************************
time.sleep(2)
#点击:取得日期 日期框
driver.find_element_by_css_selector('#EditPanel > div > div > table > tbody > tr:nth-child(4) > td:nth-child(2) > span > span > span').click()
time.sleep(2)
#点击:今天 选项
driver.find_element_by_xpath('/html/body/div[12]/div/div[2]/a[1]').click()
#*********************************************日期控件**************************************
#点击:点击:型号 输入框
driver.find_element_by_xpath('/html/body/div[2]/div[2]/div[1]/div/div[1]/div/div/table/tbody/tr[11]/td[4]/input').click()
#输入型号:88*88
driver.find_element_by_xpath('/html/body/div[2]/div[2]/div[1]/div/div[1]/div/div/table/tbody/tr[11]/td[4]/input').send_keys(u'88*88')
time.sleep(2)
#点击:点击:原值 输入框
driver.find_element_by_xpath('/html/body/div[2]/div[2]/div[1]/div/div[1]/div/div/table/tbody/tr[7]/td[2]/input[1]').clear()
#输入原值:888
driver.find_element_by_xpath('/html/body/div[2]/div[2]/div[1]/div/div[1]/div/div/table/tbody/tr[7]/td[2]/input[1]').send_keys(u'888')
time.sleep(2)
#点击:经费来源 下拉框
driver.find_element_by_css_selector('#EditPanel > div > div > table > tbody > tr:nth-child(9) > td:nth-child(2) > span > span > span').click()
time.sleep(2)
#点击:创新强校 选项
driver.find_element_by_xpath('//div[text()="创新强校"]').click()
time.sleep(2)
#10000足够大,代表拖到底部。值设为0代表顶部
js="var q=document.documentElement.scrollTop=10000"
driver.execute_script(js)
time.sleep(2)
#*********************************************下拉框**************************************
#点击:行业资产用途 下拉框
driver.find_element_by_css_selector('#EditPanel > div > div > table > tbody > tr:nth-child(17) > td:nth-child(2) > span > span > span').click()
time.sleep(2)
#点击:(行业)科研 选项
driver.find_element_by_xpath('//div[text()="(行业)科研"]').click()
#*********************************************下拉框**************************************
#点击:资产附件
driver.find_element_by_xpath('/html/body/div[2]/div[1]/div[3]/ul/li[2]/a/span[1]').click()
time.sleep(2)
#点击:新增
driver.find_element_by_xpath('/html/body/div[2]/div[2]/div[2]/div/div/div/div[1]/div/button[1]').click()
#退出frame方式定位
driver.switch_to.default_content()
driver.switch_to.default_content()
driver.switch_to.default_content()
#获取动态的frame(好像区分360浏览器和火狐浏览器)
iframe1()
#点击:选择文件
driver.find_element_by_xpath('/html/body/div[1]/table/tbody/tr[2]/td[2]/form/input').send_keys('C:\\Users\\Admin\\Desktop\\控制台输出.sql')
time.sleep(2)
#点击文件框:保存
driver.find_element_by_xpath('/html/body/div[2]/button[1]').click()
#退出frame方式定位
driver.switch_to.default_content()
#通过两层frame方式定位
driver.switch_to.frame("id_iframe")
driver.switch_to.frame("J_iframe_M160103A")
#获取动态的frame(好像区分360浏览器和火狐浏览器)
iframe0()
#点击:资金来源
driver.find_element_by_xpath('/html/body/div[2]/div[1]/div[3]/ul/li[6]/a/span[1]').click()
time.sleep(2)
#点击:添加
driver.find_element_by_xpath('/html/body/div[2]/div[2]/div[6]/div/div/div[3]/div[1]/button[1]').click()
time.sleep(2)
#点击:项目编号放大镜
driver.find_element_by_xpath('/html/body/div[2]/div[2]/div[6]/div/div/div[3]/div[2]/form/div/div/div/div[2]/div[2]/table/tbody/tr/td[3]/div/table/tbody/tr/td/span/span/span').click()
time.sleep(2)
#退出frame方式定位
driver.switch_to.default_content()
driver.switch_to.default_content()
driver.switch_to.default_content()
#获取动态的frame(好像区分360浏览器和火狐浏览器)
iframe1()
#选择行号:1 的经费
driver.find_element_by_xpath('/html/body/div[2]/div/div/div[2]/div[2]/div[2]/table/tbody/tr[1]/td[1]/div').click()
time.sleep(2)
#点击:确定
driver.find_element_by_xpath('/html/body/div[3]/button[1]').click()
time.sleep(2)
#退出frame方式定位
driver.switch_to.default_content()
#通过两层frame方式定位
driver.switch_to.frame("id_iframe")
driver.switch_to.frame("J_iframe_M160103A")
#获取动态的frame(好像区分360浏览器和火狐浏览器)
iframe0()
time.sleep(2)
#使用金额输入值
driver.find_element_by_xpath('/html/body/div[2]/div[2]/div[6]/div/div/div[3]/div[2]/form/div/div/div/div[2]/div[2]/table/tbody/tr/td[5]/div/table/tbody/tr/td/input[1]').send_keys('888')
#点击:保存
driver.find_element_by_xpath('/html/body/div[3]/button[2]').click()
time.sleep(2)
#退出frame方式定位
driver.switch_to.default_content()
driver.switch_to.default_content()
driver.switch_to.default_content()
#点击:确定
driver.find_element_by_xpath('/html/body/div[7]/div[3]/a[1]').click()
time.sleep(2)
#通过两层frame方式定位
#获取动态的frame(好像区分360浏览器和火狐浏览器)
iframe1()
#点击:返回
driver.find_element_by_xpath('/html/body/div/div[3]/input[3]').click()
#退出frame方式定位
driver.switch_to.default_content()