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 库,通过以下步骤实现自动点击课程功能:

  1. 检查浏览器实例: 代码首先检查是否有已存在的 Chrome 浏览器实例,如果存在则不再创建新的实例,而是直接使用已存在的实例。
  2. 创建浏览器实例: 如果没有找到已存在的实例,则使用 os.system() 命令创建一个新的 Chrome 浏览器实例,并设置 --remote-debugging-port=9223--user-data-dir 参数,以便于 Selenium 可以控制该浏览器实例。
  3. 查找目标标签页: 然后,代码会遍历所有打开的标签页,查找标题为 '国家开放大学个人空间' 的标签页。如果找到,则切换到该标签页。
  4. 打开目标标签页: 如果没有找到目标标签页,则代码会自动打开一个新的标签页,并访问 'https://www.ouchn.edu.cn/' 网站。
  5. 查找课程并点击: 最后,代码会使用 WebDriverWait 对象等待 'p.learning_course' 类名的元素出现,并判断其文本内容是否包含 'Android智能手机编程'。如果包含,则点击该元素。

该代码可以帮助用户节省时间和精力,自动完成课程点击操作。

Python Selenium 自动点击国家开放大学课程

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

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