Python Selenium 自动化:实现网页成绩自动填写
import os
import time
import random
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
def check_browser():
'''检查是否已经打开了浏览器'''
try:
options = Options()
options.add_experimental_option('debuggerAddress', '127.0.0.1:9527')
browser = webdriver.Chrome(options=options)
browser.execute_script('return true')
return True
except:
return False
if __name__ == '__main__':
if not check_browser():
os.system(r'start chrome --remote-debugging-port=9527 --user-data-dir="D:\评阅用"')
options = Options()
options.add_experimental_option('debuggerAddress', '127.0.0.1:9527')
browser = webdriver.Chrome(options=options)
while True:
for handle in browser.window_handles:
browser.switch_to.window(handle)
if '内蒙古开放大学' in browser.title:
print('用户登录成功!')
break
else:
time.sleep(1)
continue
break
while True:
try:
score_box = browser.find_element(By.CLASS_NAME, 'score-box')
score_input = score_box.find_element(By.TAG_NAME, 'input')
score_input.clear()
score_input.send_keys(str(random.randint(94, 99)))
score_input.send_keys(Keys.ENTER)
time.sleep(1)
# 点击 'nav-text ng-binding ng-scope' 元素
try:
browser.find_element(By.CSS_SELECTOR, '.nav-text.ng-binding.ng-scope').click()
except:
print('未找到 'nav-text ng-binding ng-scope' 元素!')
# 检查是否出现 'toast-message' 元素
try:
toast_message = browser.find_element(By.CLASS_NAME, 'toast-message')
if toast_message:
print('成绩填写成功!')
break
except:
print('成绩填写失败,正在重试...')
except Exception as e:
print(f'出现错误:{e}')
time.sleep(1)
continue
原文地址: https://www.cveoy.top/t/topic/fYvt 著作权归作者所有。请勿转载和采集!