1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
| from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service from selenium.webdriver.support.ui import Select from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.keys import Keys from time import sleep from os.path import isfile, dirname, join as path_join import traceback import codecs, csv
def login(): browser = webdriver.Chrome() return browser
def open_and_close(fun): def func(*args, **kwargs): fun_data = "" try: browser = login() except Exception as e: print("创建句柄出错了", e) else: try: browser.implicitly_wait(1) fun_data = fun(browser, *args, **kwargs) except Exception as e: print("出错了", e) traceback.print_exc() browser.close() return fun_data
return func
@open_and_close def fun1(browser): browser.get('http://127.0.0.1:8047/mgr/sign.html/') account = 'byhy' password = '88888888' drug_list = [ ['头孢盒装1', 'YP-20023524', '头孢他啶注射液,每支15ml,10支装'], ['头孢盒装2', 'YP-20023525', '头孢他啶注射液,每支15ml,20支装'], ['头孢盒装3', 'YP-20023526', '头孢他啶注射液,每支15ml,30支装'] ] client_list = [ ['南京鼓楼区中医院1', '2583426507', '江苏省-南京市-鼓楼区-中山北路-253'], ['南京鼓楼区中医院2', '2583426508', '江苏省-南京市-鼓楼区-中山北路-254'], ['南京鼓楼区中医院3', '2583426509', '江苏省-南京市-鼓楼区-中山北路-255'] ] num = 0 li_list = [["订单", 2], ["客户", 0], ["药品", 1]] browser.find_element(By.CSS_SELECTOR, "[placeholder='用户名']").send_keys(account) browser.find_element(By.CSS_SELECTOR, "[placeholder='密码']").send_keys(password) browser.find_element(By.CSS_SELECTOR, ".row div button").click() sleep(1) assert browser.title == "白月销售管理系统", "没有登录成功" for i in li_list: browser.find_element(By.XPATH, f"/html/body/div/aside/section/ul/li[{2 + i[1]}]/a").click() while browser.find_elements(By.XPATH, "/html/body/div/div/section[2]/div[3]//label[last()]"): assert browser.find_element(By.XPATH, "/html/body/div/div/section[2]/div[1]/button").text[-2:] == i[ 0], "菜单项出错" browser.find_elements(By.XPATH, "/html/body/div/div/section[2]/div[3]//label[last()]")[0].click() assert EC.alert_is_present()(browser), "不存在删除弹出框" if EC.alert_is_present()(browser): EC.alert_is_present()(browser).accept() sleep(0.3) if EC.alert_is_present()(browser): EC.alert_is_present()(browser).accept() break
for temp in [client_list, drug_list]: browser.find_element(By.XPATH, f"/html/body/div/aside/section/ul/li[{2 + num}]/a").click() browser.find_element(By.XPATH, "/html/body/div/div/section[2]/div[1]/button").click() input_div = browser.find_element(By.XPATH, '/html/body/div/div/section[2]/div[1]') input_list = input_div.find_elements(By.XPATH, "//input") for i in temp: input_list[0].send_keys(i[0]) input_list[1].send_keys(i[1]) input_div.find_element(By.XPATH, '//textarea').send_keys(i[2]) input_div.find_elements(By.XPATH, "//button")[1].click() sleep(0.5) num += 1 sleep(1) assert browser.find_elements(By.XPATH, "/html/body/div/div/section[2]/div[3]"), "没有正确添加客户 药品新对象" browser.find_element(By.XPATH, f"/html/body/div/aside/section/ul/li[{2 + num}]/a").click() browser.find_element(By.XPATH, "/html/body/div/div/section[2]/div[1]/button").click() input_div = browser.find_element(By.XPATH, '/html/body/div/div/section[2]/div[1]') input_list = input_div.find_elements(By.XPATH, "//input") input_list[0].send_keys('南京鼓楼中院头孢')
temp_select = Select(browser.find_element(By.XPATH, "/html/body/div[1]/div/section[2]/div[1]/div[1]/div[2]/select")) temp_select.select_by_visible_text("南京鼓楼区中医院2")
temp_select = Select(browser.find_element(By.XPATH, "/html/body/div[1]/div/section[2]/div[1]/div[1]/div[3]/select")) temp_select.select_by_visible_text("头孢盒装1") temp_select.select_by_visible_text("头孢盒装2")
input_list = browser.find_elements(By.XPATH, "/html/body/div[1]/div/section[2]/div[1]/div[1]/div[3]//input") input_list[0].send_keys(100) input_list[1].send_keys(100) input_div.find_elements(By.XPATH, "//button")[1].click()
assert browser.find_elements(By.XPATH, "/html/body/div/div/section[2]/div[3]"), "没有正确添加订单新对象"
browser.find_element(By.XPATH, "/html/body/div/aside/section/ul/li[3]/a").click() num = 0 with codecs.open(path_join(dirname(__file__), "medicine.csv"), "w", "utf_8") as f: data_writer = csv.writer(f) while browser.find_elements(By.XPATH, f"/html/body/div/div/section[2]/div[{3 + num}]"): div = browser.find_element(By.XPATH, f"/html/body/div/div/section[2]/div[{3 + num}]") drug = div.find_element(By.CSS_SELECTOR, "div:nth-child(1) > span:nth-child(2)").text drug_code = f"H2001055{6 - num}" drug_text = div.find_element(By.CSS_SELECTOR, "div:nth-child(3) > span:nth-child(2)").text drug = "阿奇霉素" + drug[2:] drug_text = "阿奇霉素" + drug_text[4:10]+"2"+drug_text[12:] print(drug_text) num += 1 data_writer.writerow([drug, drug_code, drug_text])
for line in csv.reader(codecs.open(path_join(dirname(__file__), "medicine.csv"), "r", "utf_8_sig")): browser.find_element(By.XPATH, "/html/body/div/div/section[2]/div[1]/button").click() input_div = browser.find_element(By.XPATH, '/html/body/div/div/section[2]/div[1]') input_list = input_div.find_elements(By.XPATH, "//input") input_list[0].send_keys(line[0]) input_list[1].send_keys(line[1]) input_div.find_element(By.XPATH, '//textarea').send_keys(line[2]) input_div.find_elements(By.XPATH, "//button")[1].click()
if __name__ == "__main__": fun1() print('测试通过')
|