Python Selenium 自动点击国家开放大学课程
import os
import psutil
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 检查是否已经存在浏览器实例,如果存在则不再创建
for proc in psutil.process_iter():
try:
if 'chrome' in proc.name() and '--remote-debugging-port=9223' in proc.cmdline():
break
except:
pass
else:
# 创建浏览器实例
os.system(r'start chrome --remote-debugging-port=9223 --user-data-dir='D:\评阅用'')
options = Options()
options.add_experimental_option('debuggerAddress', '127.0.0.1:9223')
# 在已有的浏览器实例上执行操作
driver = webdriver.Chrome(options=options)
# 查找标签页并切换
target_tab = None
for tab in driver.window_handles:
driver.switch_to.window(tab)
if driver.title == '国家开放大学个人空间':
target_tab = tab
break
# 如果未找到目标标签页,则打开并切换到新标签页
if not target_tab:
driver.execute_script('window.open('https://www.ouchn.edu.cn/');')
target_tab = driver.window_handles[-1]
driver.switch_to.window(target_tab)
# 查找课程并点击
try:
course_element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, 'p.learning_course'))
)
if 'Android智能手机编程' in course_element.text:
course_element.click()
except:
print('未找到目标课程')
# 关闭浏览器
driver.quit()
该代码使用 Python Selenium 库,通过以下步骤实现自动点击课程功能:
- 检查浏览器实例: 代码首先检查是否有已存在的 Chrome 浏览器实例,如果存在则不再创建新的实例,而是直接使用已存在的实例。
- 创建浏览器实例: 如果没有找到已存在的实例,则使用
os.system()命令创建一个新的 Chrome 浏览器实例,并设置--remote-debugging-port=9223和--user-data-dir参数,以便于 Selenium 可以控制该浏览器实例。 - 查找目标标签页: 然后,代码会遍历所有打开的标签页,查找标题为 '国家开放大学个人空间' 的标签页。如果找到,则切换到该标签页。
- 打开目标标签页: 如果没有找到目标标签页,则代码会自动打开一个新的标签页,并访问 'https://www.ouchn.edu.cn/' 网站。
- 查找课程并点击: 最后,代码会使用
WebDriverWait对象等待 'p.learning_course' 类名的元素出现,并判断其文本内容是否包含 'Android智能手机编程'。如果包含,则点击该元素。
该代码可以帮助用户节省时间和精力,自动完成课程点击操作。
原文地址: https://www.cveoy.top/t/topic/f2MD 著作权归作者所有。请勿转载和采集!