import os
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

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

# 使用cmd命令打开一个浏览器
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)
    browser.get('https://menhu.pt.ouchn.cn/site/ouchnPc/index')
    print(browser.title)

    # 查找标签页
    for handle in browser.window_handles:
        browser.switch_to.window(handle)
        if '内蒙古开放大学' in browser.title:
            print('已定位到标签页:', browser.title)
            break

这段代码演示了如何使用 Python Selenium 实现以下功能:

  1. 连接到已打开的 Chrome 浏览器:

    • 使用 check_browser() 函数检查是否已存在监听 9527 端口的 Chrome 浏览器。
    • 如果不存在,则使用 os.system() 命令打开 Chrome,并指定 --remote-debugging-port 参数开启远程调试模式。
    • 使用 options.add_experimental_option('debuggerAddress', '127.0.0.1:9527') 将 Selenium 连接到已打开的浏览器。
  2. 定位到特定标签页:

    • 使用 browser.window_handles 获取当前浏览器所有标签页的句柄。
    • 遍历所有句柄,使用 browser.switch_to.window(handle) 切换到每个标签页。
    • 检查当前标签页的标题是否包含目标关键字(例如,'内蒙古开放大学')。
    • 如果找到匹配的标签页,则打印提示信息并退出循环。

这段代码可以帮助你自动化控制已打开的 Chrome 浏览器,并在多个标签页中快速定位到目标页面,提高工作效率。

Python Selenium 自动化控制浏览器:连接现有浏览器、定位标签页

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

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