尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

selenium基础 - 教程

selenium基础 - 教程
📅 发布时间:2026/6/19 15:51:15

selenium基础 - 教程

整理后的就是以下Selenium操作介绍:

基本操作

  • 定位元素
    • 使用By.ID定位:driver.find_element(By.ID,"page-mainIframe"),尽量使用id元素定位。
    • 定位多个元素:driver.find_elements(By.ID,"some_id")。
  • 刷新页面:使用refresh()方法刷新当前页面。
  • 等待机制
    • 显式等待:使用WebDriverWait类和expected_conditions模块,如element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "dynamic_id")))。
    • 隐式等待:通过implicitly_wait()方法设置,如driver.implicitly_wait(10)。
    • 固定等待:使用time.sleep()方法让脚本暂停执行指定时间。
    • Fluent Wait:适用于需要动态调整等待时间的场景。

元素操作

  • 输入文本:element.send_keys("text")。
  • 点击元素:element.click()。
  • 清除输入框内容:element.clear()。
  • 获取元素属性:value = element.get_attribute("value"),可获取元素的指定属性值,如value、href、class等,还可从网页中提取链接地址、图片URL、文本内容等信息。
  • 复选框/单选框操作:使用is_selected()和click()方法,如if not checkbox.is_selected(): checkbox.click()。
  • 下拉列表操作:使用Select类的select_by_index、select_by_value、select_by_visible_text方法选择下拉列表的选项,如dropdown.select_by_visible_text("China")。

高级操作

  • 鼠标操作:使用ActionChains类的click、double_click、context_click、drag_and_drop、move_to_element、click_and_hold、release等方法执行复杂的鼠标操作。
  • 键盘操作:使用Keys类的send_keys(Keys.KEY_NAME)模拟键盘操作,如element.send_keys(Keys.ENTER)。对于更复杂的键盘操作,可使用ActionChains类和key_down、key_up方法。
  • 文件上传:通过<input type="file">元素的send_keys("file_path")方法上传文件,如element.send_keys("/path/to/file.txt")。

窗口操作

  • 打开新窗口:driver.execute_script("window.open('URL');")。
  • 切换窗口:driver.switch_to.window(window_handle)。
  • 最大化窗口:driver.maximize_window()。
  • 设置窗口大小:driver.set_window_size(width, height)。
  • 全屏模式:driver.fullscreen_window()。

网页操作

  • 打开网页:driver.get(url)。
  • 刷新页面:driver.refresh()。

弹窗处理

  • Alert弹窗:使用driver.switch_to.alert切换到Alert上下文,然后使用accept()方法接受弹窗或使用dismiss()方法关闭弹窗。
  • Confirm弹窗:处理方式同Alert弹窗。
  • Prompt弹窗:使用driver.switch_to.alert切换到Prompt弹窗上下文,然后使用send_keys()输入文本,再使用accept()或dismiss()方法处理弹窗。

Cookie操作

  • 添加Cookie:driver.add_cookie(cookie_dict)。
  • 获取Cookie:driver.get_cookie(name)或driver.get_cookies()。
  • 删除Cookie:driver.delete_cookie(name)或driver.delete_all_cookies()。

JavaScript执行

  • 执行JavaScript:driver.execute_script(script)。
  • 获取JavaScript返回值:driver.execute_script("return ...")。

iframe切换

  • 切换到iframe:driver.switch_to.frame(iframe_element)。
  • 切换回主页面:driver.switch_to.default_content()。

示例代码

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
# 设置Chrome WebDriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager(
).install(
)
)
)
# 打开网页
driver.get("https://example.com"
)
# 添加Cookie
cookie_dict = {
'name': 'test_cookie'
, 'value': 'test_value'
, 'domain': 'example.com'
}
driver.add_cookie(cookie_dict)
# 获取Cookie
cookie = driver.get_cookie('test_cookie'
)
print("Cookie:"
, cookie)
# 获取所有Cookies
cookies = driver.get_cookies(
)
print("All Cookies:"
, cookies)
# 删除指定的Cookie
driver.delete_cookie('test_cookie'
)
# 再次获取所有Cookies,确认'test_cookie'已被删除
cookies_after_deletion = driver.get_cookies(
)
print("Cookies after deletion:"
, cookies_after_deletion)
# 删除所有Cookies
driver.delete_all_cookies(
)
# 再次获取所有Cookies,确认所有Cookies已被删除
cookies_after_all_deletion = driver.get_cookies(
)
print("Cookies after all deletion:"
, cookies_after_all_deletion)
# 关闭浏览器
driver.quit(
)

相关新闻

  • 详细介绍:20250602在荣品的PRO-RK3566开发板的Android13下的uboot启动阶段配置BOOTDELAY为10s
  • 实用指南:HTML实现端午节主题网站:龙舟争渡,凭吊祭江诵君赋
  • 大数据-276 Spark MLib - 基础介绍 机器学习算法 Bagging和Boosting区别 GBDT梯度提升树 - 实践

最新新闻

  • 博尔塔拉蒙古自治州黄金回收多少钱一克?本地实体门店回收价格对比整理 - 三大殿
  • 黄金铂金白银回收门店整理,各区均有分店联系方式 - 三大殿
  • 盘锦市闲置黄金变现多少钱?本地5家回收门店最新报价参考 - 千叶啊
  • CurseBreaker未来路线图:插件管理器的发展方向与规划
  • 2026安徽省铜陵市电大中专会计二建报考前置学历最新发布 - cc江江
  • 承德市黄金回收实体店怎么选?这份清单帮你货比三家 - 开始就结束

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号