需要修改的代码:

# 循环打分论坛分值
while True:
    if not self.running:
        break

    if self.paused:
        continue

    # 等待论坛打分输入框出现
    while True:
        try:
            forum_score_input = self.browser.find_element(By.XPATH, '//input[@ng-model="currentEnrollment.forum_score.display_score"]')
            break
        except:
            pass
        time.sleep(3)

    # 判断是否已经打过分
    try:
        blank_message = self.browser.find_element(By.CLASS_NAME, "blank-message")
        if blank_message.text == "暂无":
            # 填写分值
            score = random.randint(94, 99)
            forum_score_input.send_keys(str(score))
            time.sleep(1.5)
            # 点击保存按钮
            save_button = self.browser.find_element(By.XPATH, '//button[@ng-click="saveScore(currentEnrollment)"]')
            save_button.click()
            time.sleep(2.5)
            self.update_text_box(f"本次论坛分值为:{score}")
            self.update_running_label('论坛打分中...')
        else:
            self.update_text_box("本学生已打过论坛分,跳过")
    except:
        pass

    # 点击下一个学生
    next_student_element = self.browser.find_element(By.XPATH, '//i[@ng-click="goToNextStudent()"]')
    if "disabled" 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('论坛打分中...')

需要修改的位置:

在循环内部的try语句块中,添加对暂无元素的查找和判断,以判断是否需要进行打分操作。具体修改如下:

# 判断是否已经打过分
try:
    blank_message = self.browser.find_element(By.CLASS_NAME, "blank-message")
    if blank_message.text == "暂无":
        # 填写分值
        score = random.randint(94, 99)
        forum_score_input.send_keys(str(score))
        time.sleep(1.5)
        # 点击保存按钮
        save_button = self.browser.find_element(By.XPATH, '//button[@ng-click="saveScore(currentEnrollment)"]')
        save_button.click()
        time.sleep(2.5)
        self.update_text_box(f"本次论坛分值为:{score}")
        self.update_running_label('论坛打分中...')
    else:
        self.update_text_box("本学生已打过论坛分,跳过")
except:
    pass
``
def forum_score_programself try # 循环打分论坛分值 while True if not selfrunning break if selfpaused continue

原文地址: https://www.cveoy.top/t/topic/htyj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录