Python Selenium自动化脚本:实现网页论坛自动打分

本文将介绍如何使用Python和Selenium库编写一个自动化脚本,用于在网页论坛中自动打分。

功能:

  • 自动查找论坛打分输入框。* 判断学生是否已打分,如果未打分则随机生成分值并填写。* 自动点击保存按钮。* 自动切换到下一个学生并重复上述步骤。* 检测是否已到最后一个学生,如果是则停止脚本并提示用户。

**代码:**pythondef forum_score_program(self): try: # 循环打分论坛分值 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('论坛打分中...')

代码解析:

  1. 查找输入框元素: 使用 self.browser.find_element(By.XPATH, '//input[@ng-model='currentEnrollment.forum_score.display_score']') 定位到论坛打分输入框。2. 判断是否已打分: 通过查找 class='blank-message' 的元素并判断其文本内容是否为 '暂无' 来确定是否已打分。3. 填写分值: 使用 random.randint(94, 99) 生成随机分值,并使用 send_keys() 方法将其输入到输入框中。4. 点击保存按钮: 使用 self.browser.find_element(By.XPATH, '//button[@ng-click='saveScore(currentEnrollment)']') 定位到保存按钮,并使用 click() 方法点击。5. 点击下一个学生按钮: 使用 self.browser.find_element(By.XPATH, '//i[@ng-click='goToNextStudent()']') 定位到下一个学生按钮,并使用 click() 方法点击。6. 判断是否到最后一个学生: 检查下一个学生按钮是否具有 disabled 属性,如果是则说明已到最后一个学生。

SEO优化建议:

  • 标题中包含关键词 'Python','Selenium','自动化','论坛打分'。* 描述中概括文章内容,并包含相关关键词。* 使用清晰的代码格式和注释。* 添加相关标签,例如 'Python', 'Selenium', '自动化', '网页爬虫' 等。

希望这篇文章能帮助你理解如何使用Python和Selenium实现网页论坛自动打分功能。

Python Selenium自动化脚本:实现网页论坛自动打分

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

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