Python Selenium 自动评分机器人:解放教师双手,提高评阅效率
需要修改的代码如下:
-
在AutoScore100类中添加start_forum_score方法,用于启动论坛打分功能。
-
在score_program方法中添加论坛打分的代码。
需要修改的位置如下:
-
在__init__方法中添加self.start_forum_button.config(state='normal'),用于启用论坛打分按钮。
-
在start_program方法中添加self.start_forum_button.config(state='disabled'),用于禁用论坛打分按钮。
-
在stop_program方法中添加self.start_forum_button.config(state='disabled'),用于禁用论坛打分按钮。
-
在score_program方法中添加以下代码:
等待论坛打分元素出现
while True: try: forum_score_element = self.browser.find_element(By.CLASS_NAME, 'ng-pristine') break except: pass time.sleep(3)
判断是否已经打过分
try: blank_message_element = self.browser.find_element(By.CLASS_NAME, 'blank-message') if blank_message_element.text == '暂无': self.update_text_box('该学生未进行论坛打分') else: self.update_text_box('该学生已进行论坛打分') except: # 进行打分操作 forum_score_element.clear() forum_score_element.send_keys(str(random.randint(94, 99))) time.sleep(1.5) submit_button = self.browser.find_element(By.CLASS_NAME, 'icon-right-narrow') submit_button.click() time.sleep(2.5) self.update_text_box(f"本次论坛打分为:{forum_score_element.get_attribute('value')}")
点击下一个学生
next_student_element = self.browser.find_element(By.CLASS_NAME, 'icon-right-narrow') if "unclickable" in next_student_element.get_attribute("class"): print("已经到最后一个学生") self.update_running_label('已到最后,请手动保存后重新开始!') break else: next_student_element.click() time.sleep(3) self.update_running_label('论坛打分中...')
-
在start_forum_score方法中添加以下代码:
if not self.running: return
if self.forum_thread and self.forum_thread.is_alive(): return
self.start_forum_button.config(state='disabled') self.stop_score_button.config(state='normal') self.update_running_label('论坛打分中...') self.forum_thread = Thread(target=self.forum_score_program) self.forum_thread.start()
-
在stop_program方法中添加以下代码:
if self.forum_thread and self.forum_thread.is_alive(): self.forum_thread.join()
-
在update_running_label方法中添加以下代码:
if text == '论坛打分中...': self.start_score_button.config(state='disabled') self.start_score_button_2.config(state='disabled') self.pause_button.config(state='disabled') self.start_forum_button.config(state='disabled') else: self.start_score_button.config(state='normal') self.start_score_button_2.config(state='normal') self.pause_button.config(state='normal') self.start_forum_button.config(state='normal')
完整代码如下:
原文地址: http://www.cveoy.top/t/topic/f2cb 著作权归作者所有。请勿转载和采集!