1. 最近在用公司的一个工具拉取一些业务数据时发现有很多重复的页面操作, 每次都要重复的选择机构与对应的表, 点击添加操作 (十几家机构加起来要手工添加两百多次), 于是用 python 写了一个 UI 脚本让机器去执行这些重复的操作, 即省时效率又高
- #coding:utf8
- from selenium import webdriver
- from config.params import *
- from selenium.webdriver.support.ui import Select
- import time
- class pullData():
- path="E:/chromedriver.exe"
- def __init__(self,url):
- self.url=url
- self.wd = webdriver.Chrome(self.path)
- def openBrowser(self):
- self.wd.get(self.url)
- self.wd.maximize_window()
- def closeBrowser(self):
- self.wd.quit()
- def findeleOrg(self):
- hospitals = self.wd.find_elements_by_CSS_selector("select[name=hospitalCode]>option")
- return hospitals
- def findeledept(self):
- hospitalDatatype = self.wd.find_elements_by_css_selector(select[name$="DataType"]>option)
- return hospitalDatatype
- def deleteCords(self):
- while True:
cords=self.wd.find_elements_by_css_selector("table[border=1] tr>td:nth-of-type(8)>input[value = 删除]")
- if len(cords)==0:
- break
- cords[0].click()
- time.sleep(1) #定位元素前后要加等待时间, 特别是刷新的页面
- def hospitalConfig(self):
- self.wd.find_element_by_partial_link_text(u"医院视图 SQL").click()
- hospitals=self.findeleOrg()
- hospitalDatatype=self.findeledept()
- for num in range(len(hospitals)-1):
- hospitals = self.findeleOrg()
- hospitals[num].click()
- for numdata in range(len(hospitalDatatype)-1):
- hospitals = self.findeleOrg()
- hospitals[num].click()
- hospitalDatatype = self.findeledept()
- time.sleep(1)
- hospitalDatatype[numdata].click()
- time.sleep(2)
- self.wd.find_element_by_css_selector("input[type=submit]").click()
- self.wd.find_element_by_id("submit_id").click()
- self.wd.find_element_by_partial_link_text(u"医院视图 SQL").click()
- if name=="main":
- pullD = pullData(url)
- pullD.openBrowser()
- pullD.hospitalConfig()
- pullD.deleteCords()
来源: http://www.bubuko.com/infodetail-2539891.html