Selenium网页自动化:常用方法与属性全解析

1. 浏览器控制相关方法

方法/属性 功能说明
driver.get(url) 打开指定 URL。
driver.refresh() 刷新当前页面。
driver.back() 模拟浏览器后退操作。
driver.forward() 模拟浏览器前进操作。
driver.close() 关闭当前窗口。
driver.quit() 关闭整个浏览器和 WebDriver 会话。
driver.execute_script(js) 执行 JavaScript 脚本,可用于操作页面元素或获取页面内容。

2. 网页信息获取

方法/属性 功能说明
driver.page_source 获取当前页面的 HTML 源代码。
driver.title 获取当前页面的标题。
driver.current_url 获取当前页面的 URL。
driver.get_cookies() 获取当前页面所有 Cookies,以列表形式返回。
driver.get_cookie(name) 根据名称获取特定的 Cookie。

3. 页面元素查找与操作

查找元素方法
方法/属性 功能说明
driver.find_element(By.ID, id_) 根据 ID 查找单个元素。
driver.find_element(By.NAME, name) 根据 Name 属性查找单个元素。
driver.find_element(By.CLASS_NAME, class_name) 根据类名查找单个元素。
driver.find_element(By.TAG_NAME, tag_name) 根据标签名查找单个元素。
driver.find_element(By.CSS_SELECTOR, selector) 根据 CSS 选择器查找单个元素。
driver.find_element(By.XPATH, xpath) 根据 XPath 表达式查找单个元素。
driver.find_elements(...) 与上述方法类似,但返回多个符合条件的元素(列表)。
元素操作方法
方法/属性 功能说明
element.click() 点击页面元素。
element.send_keys(keys) 向元素中输入文本(例如表单输入框)。
element.clear() 清空输入框内容。
element.text 获取元素的文本内容。
element.get_attribute(name) 获取元素的属性值,例如 hrefsrc 等。
element.is_displayed() 检查元素是否可见,返回布尔值。
element.is_enabled() 检查元素是否可用(启用状态),返回布尔值。
element.is_selected() 检查元素是否被选中(如复选框、单选框等)。

4. 窗口与框架操作

方法/属性 功能说明
driver.window_handles 获取所有打开窗口的句柄(列表)。
driver.current_window_handle 获取当前窗口的句柄。
driver.switch_to.window(handle) 切换到指定窗口句柄。
driver.switch_to.frame(frame) 切换到指定的 iframe 框架。
driver.switch_to.parent_frame() 返回到父框架。
driver.switch_to.default_content() 返回到主页面内容。

5. 等待操作

方法/属性 功能说明
driver.implicitly_wait(seconds) 设置隐式等待时间,在查找元素时会等待指定秒数直到找到元素。
WebDriverWait(driver, timeout).until(condition) 显式等待,等待某个条件满足。

6. 警告框操作

方法/属性 功能说明
driver.switch_to.alert 切换到警告框(Alert)。
alert.accept() 接受警告框。
alert.dismiss() 取消警告框。
alert.text 获取警告框中的文本。
alert.send_keys(keys) 向警告框输入文本(部分情况下支持)。

7. 其他实用操作

方法/属性 功能说明
driver.set_window_size(width, height) 设置窗口大小。
driver.maximize_window() 最大化浏览器窗口。
driver.save_screenshot(file_path) 截图保存为文件,便于调试。
driver.switch_to.active_element 切换到当前页面的活动元素。

举例:

python 复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options

# 初始化无界面浏览器
options = Options()
options.add_argument("--headless")
driver = webdriver.Chrome(options=options)

try:
    # 打开百度
    driver.get("https://www.baidu.com")
    
    # 获取页面标题和URL
    print("Title:", driver.title)
    print("URL:", driver.current_url)
    
    # 查找搜索框并输入内容
    search_box = driver.find_element(By.ID, "kw")
    search_box.send_keys("Selenium")
    
    # 截图
    driver.save_screenshot("baidu.png")
    
    # 打印Cookies
    print("Cookies:", driver.get_cookies())
    
finally:
    driver.quit()

点评:

Selenium 的方法和属性可以灵活组合,实现复杂的网页自动化任务。

相关推荐
老刘莱国瑞4 分钟前
STM32 与 AS608 指纹模块的调试与应用
python·物联网·阿里云
唐 城20 分钟前
curl 放弃对 Hyper Rust HTTP 后端的支持
开发语言·http·rust
星就前端叭1 小时前
【开源】一款基于Vue3 + WebRTC + Node + SRS + FFmpeg搭建的直播间项目
前端·后端·开源·webrtc
m0_748234521 小时前
前端Vue3字体优化三部曲(webFont、font-spider、spa-font-spider-webpack-plugin)
前端·webpack·node.js
Web阿成1 小时前
3.学习webpack配置 尝试打包ts文件
前端·学习·webpack·typescript
一只敲代码的猪1 小时前
Llama 3 模型系列解析(一)
大数据·python·llama
Hello_WOAIAI1 小时前
批量将 Word 文件转换为 HTML:Python 实现指南
python·html·word
winfredzhang2 小时前
使用Python开发PPT图片提取与九宫格合并工具
python·powerpoint·提取·九宫格·照片
jwensh2 小时前
【Jenkins】Declarative和Scripted两种脚本模式有什么具体的区别
运维·前端·jenkins
关你西红柿子2 小时前
小程序app封装公用顶部筛选区uv-drop-down
前端·javascript·vue.js·小程序·uv