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 的方法和属性可以灵活组合,实现复杂的网页自动化任务。

相关推荐
一壶纱1 分钟前
Vue3API解读-createApp()
前端·javascript
用户2031196600962 分钟前
SwiftUI 中的 PreferenceKey 协议
前端
樊小肆2 分钟前
Vue3 在线 PDF 编辑 2.0 图片批注、批注清空与批注记录功能解析
前端·vue.js·开源
啊阿狸不会拉杆2 分钟前
数据结构-排序
java·c语言·数据结构·c++·python·算法·排序算法
Mintopia5 分钟前
向量在图形变化中的应用教学
前端·javascript·计算机图形学
Mintopia5 分钟前
Three.js 物体碰撞试验学习指南
前端·javascript·three.js
COOCC17 分钟前
PyTorch 实战:Transformer 模型搭建全解析
人工智能·pytorch·python·深度学习·神经网络·目标检测·transformer
苏州向日葵11 分钟前
C#学习知识点记录
开发语言·学习·c#
编码七号17 分钟前
【axios取消请求】如何在token过期后取消未响应的请求
java·前端·javascript
张开心_kx18 分钟前
面试官又问我是否了解React的单向数据流
前端·javascript·react.js