中药普查实物管理系统,腊叶标本和药材标本,无法上传文件,如何解决

tech2022-09-10  94

这几天帮助安安师兄整理中药普查的数据,遇到一个问题,中药普查实物管理系统添加腊叶标本和药材标本无法上传文件,只能一条一条添加。于是我使用Selenium + ChromeDriver编写自动化程序解决这一问题。 需要自取,有问题请留言。

加载必要的包

from selenium import webdriver from selenium.webdriver.support import expected_conditions as EC import pandas as pd import time

打开网页并登录

# 打开网页 driver_path=r"E:\Program Data\chromedriver_win32\chromedriver.exe" driver=webdriver.Chrome(executable_path=driver_path) driver.get('http://sw.zyzypc.com.cn/ycypsubedit.aspx') # 登录 driver.find_element_by_xpath('/html/body/div[1]/form/input[1]').send_keys('你的账号名') driver.find_element_by_xpath('/html/body/div[1]/form/input[2]').send_keys('你的密码') driver.find_element_by_xpath('/html/body/div[1]/form/button[1]').click() time.sleep(1)

逐条上传腊叶标本

# 读取文件 file = r'E:\ly.xls' data = pd.read_excel(file,sheet_name=1,header=0) print(data.columns) # 上传 driver.find_element_by_xpath('//*[@id="sidebar-collapse"]/ul/li[2]/a').click() time.sleep(1) for i in range(len(data)): while(1): if driver.find_element_by_xpath('//*[@id="btn_add"]').is_displayed(): driver.find_element_by_xpath('//*[@id="btn_add"]').click() break time.sleep(1) driver.find_element_by_xpath('//*[@id="tiaomahao"]').clear() driver.find_element_by_xpath('//*[@id="tiaomahao"]').send_keys(data.iloc[i]['采集号']) driver.find_element_by_xpath('//*[@id="caijihao"]').click() time.sleep(1) if data.iloc[i]['标本状态(花)'] == '√': driver.find_element_by_xpath('//*[@id="hua_1"]').click() else: driver.find_element_by_xpath('//*[@id="hua_0"]').click() if data.iloc[i]['标本状态(果)'] == '√': driver.find_element_by_xpath('//*[@id="guo_1"]').click() else: driver.find_element_by_xpath('//*[@id="guo_0"]').click() driver.find_element_by_xpath('//*[@id="number"]').clear() driver.find_element_by_xpath('//*[@id="parid"]').clear() time.sleep(1) driver.find_element_by_xpath('//*[@id="number"]').send_keys(int(data.iloc[i]['数量'])) driver.find_element_by_xpath('//*[@id="parid"]').send_keys(int(data.iloc[i]['箱号'])) time.sleep(1) driver.find_element_by_xpath('//*[@id="btnedit"]').click() while(1): if EC.alert_is_present()(driver): test_alert = driver.switch_to.alert test_alert.accept() print(data.iloc[i]['采集号'],'完成') break

逐条上传药材标本

# 读取文件 file = r'E:\yc.xls' data = pd.read_excel(file,sheet_name=1,header=0) print(data.columns) # 上传药材标本 driver.find_element_by_xpath('//*[@id="sidebar-collapse"]/ul/li[3]/a').click() time.sleep(1) for i in range(54,len(data)): while(1): if driver.find_element_by_xpath('//*[@id="btn_add"]').is_displayed(): driver.find_element_by_xpath('//*[@id="btn_add"]').click() break time.sleep(1) driver.find_element_by_xpath('//*[@id="tiaomahao"]').clear() driver.find_element_by_xpath('//*[@id="tiaomahao"]').send_keys(data.iloc[i]['采集号']) driver.find_element_by_xpath('//*[@id="caijihao"]').click() time.sleep(1) driver.find_element_by_xpath('//*[@id="ycweight"]').clear() driver.find_element_by_xpath('//*[@id="parid"]').clear() time.sleep(1) driver.find_element_by_xpath('//*[@id="ycweight"]').send_keys(str(data.iloc[i]['重量'])) driver.find_element_by_xpath('//*[@id="parid"]').send_keys(int(data.iloc[i]['箱号'])) time.sleep(1) driver.find_element_by_xpath('//*[@id="btnedit"]').click() while(1): if EC.alert_is_present()(driver): test_alert = driver.switch_to.alert test_alert.accept() print(data.iloc[i]['采集号'],'完成') break

参考文章: https://www.cnblogs.com/Jacck/p/7784915.html https://www.jianshu.com/p/b64e92d0aae6 https://www.cnblogs.com/yoyoketang/p/6569170.html

最新回复(0)