- 检查"汇总表.xls"中的指标是否符合"逻辑审核关系表.xls"中的逻辑关系公式。
- 打开浏览器并登陆网站,将"汇总表.xls"中的指标值自动填入。
- 基于xlrd读取excel文档
- 基于Splinter操纵Chrome浏览器
- 使用TKinter实现图形界面
- 使用了selenium的错误消息
- gui_arrange(self): 进行所有控件的布局。
- check_count(self): 检查excel文件中的指标值。
- __get_values_assignment_commands(self, sheet, column): 从sheet中读取指标值,并生成指标变量赋值语句存入一个list中。
- __get_counts_and_reasons(sheet, column): 获取指标sheet中的指标值和修改原因,返回对象:指标值dict、原因dict。(@staticmethod)
- fill_web_pages(self, sheet_num): 打开浏览器,调用__fill_web()填入指标。
- __fill_web(self, browser, xpath_left, rows, values, reasons): 填入指标。
- 安装chrome浏览器。
- 将chromedriver.exe(附件中有)的目录加入系统环境变量PATH参数中。
- 将指标填到"汇总表.xls"中。
- 注意:不能修改这两个文件的名称、内部表结构。
- 当月指标默认为"汇总表.xls"中每个sheet的第5列,最好不要修改,如果要修改必须同时修改所有sheet。
- 将指标excel文件:"汇总表.xls"和"逻辑审核关系表.xls"与本程序置于同一目录下。
- 打开程序点击“检查指标”按钮,可以检查"汇总表.xls"中填入的指标是否符合逻辑审核关系中的逻辑关系。
- 如果检查没有问题,点击后面的按钮,将自动打开Chrome浏览器,填写对应的报表。
- 为确保填写无误,程序不会自动提交审核,填报完成后需要在浏览器页面手工提交审核。
- 如果页面加载较慢需要等待:browser.is_element_present_by_id('rtmfrm', wait_time=10),有例子中使用time.sleep(8) 来实现等待(未测试过)
- 如果引用的页面元素不存在则回报错:selenium.common.exceptions.InvalidElementStateException。注意使用该异常,需要import selenium。
- windows中,如果chrome安装位置不是默认位置则需指定安装位置:
executable_path = {'executable_path': 'C:\Program Files\Google\Chrome\Application\chrome.exe'}
browser = Browser('chrome', **executable_path)
- 如何安装chrome driver。windows下载了driver之后需要将chromedriver.exe所在目录加入系统环境变量PATH中。
- html中的内的标签在读取内容时(browser.find_by_id('td' + str(row) + '_3').first.value)直接被忽略
- splinter用来检测页面元素是否已经加载的is_element_present_by_id等函数的可选参数wait_time的单位是秒。如果检测到元素已加载则立即返回True(即使时间未到),否则等待相应的时间。