標籤:python selenium UI
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 hospitalsdef findeledept(self): hospitalDatatype = self.wd.find_elements_by_css_selector(‘select[name$="DataType"]>option‘) return hospitalDatatypedef 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()
python+selenium UI指令碼用例