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.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
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:
# 使用WebDriverWait等待元素出现,最长等待10秒
element = WebDriverWait(browser, 10).until(
EC.presence_of_element_located((By.CLASS_NAME, 'score-box'))
)
element.clear()
element.send_keys(str(random.randint(94, 99)))
time.sleep(1)
except:
continue
代码解释:
- 导入库: 导入必要的库,包括
selenium用于浏览器自动化,random用于生成随机数。 check_browser()函数: 检查是否已经有一个浏览器实例在运行并开启了调试端口。- 主程序:
- 如果没有运行浏览器,则启动一个新的 Chrome 实例,并开启调试端口。
- 连接到浏览器实例。
- 循环切换浏览器窗口,直到找到标题包含 '内蒙古开放大学' 的窗口。
- 进入无限循环,尝试查找 class 属性为 'score-box' 的元素:
- 如果找到该元素,则清除其内容,并填写一个 94 到 99 之间的随机数。
- 如果没有找到该元素,则继续循环等待。
注意事项:
- 该代码需要根据实际情况修改,例如修改浏览器驱动的路径、登录网站的网址、评分框的class属性等。
- 使用自动化脚本进行评分操作可能违反网站的使用条款,请谨慎使用。
原文地址: https://www.cveoy.top/t/topic/fYux 著作权归作者所有。请勿转载和采集!