Python Selenium 自动化控制浏览器:连接现有浏览器、定位标签页
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 实现以下功能:
-
连接到已打开的 Chrome 浏览器:
- 使用
check_browser()函数检查是否已存在监听 9527 端口的 Chrome 浏览器。 - 如果不存在,则使用
os.system()命令打开 Chrome,并指定--remote-debugging-port参数开启远程调试模式。 - 使用
options.add_experimental_option('debuggerAddress', '127.0.0.1:9527')将 Selenium 连接到已打开的浏览器。
- 使用
-
定位到特定标签页:
- 使用
browser.window_handles获取当前浏览器所有标签页的句柄。 - 遍历所有句柄,使用
browser.switch_to.window(handle)切换到每个标签页。 - 检查当前标签页的标题是否包含目标关键字(例如,'内蒙古开放大学')。
- 如果找到匹配的标签页,则打印提示信息并退出循环。
- 使用
这段代码可以帮助你自动化控制已打开的 Chrome 浏览器,并在多个标签页中快速定位到目标页面,提高工作效率。
原文地址: https://www.cveoy.top/t/topic/fYqM 著作权归作者所有。请勿转载和采集!