天天看點

python+selenium UI腳本用例

1.最近在用公司的一個工具拉取一些業務資料時發現有很多重複的頁面操作,每次都要重複的選擇機構與對應的表,點選添加操作(十幾家機構加起來要手工添加兩百多次),于是用python寫了一個UI腳本讓機器去執行這些重複的操作,即省時效率又高。

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()