Selenium使用丨WebDriverAPI常用操作

简介: Selenium使用丨WebDriverAPI常用操作

1 使用前提

  • 1.导入包:from selenium import webdriver
  • 2.初始化一个浏览器对象:driver = webdriver.Chrome()

2 浏览器相关方法和说明

方法 说明
get(url) 访问目标url
back() 后退前一个页面
forward() 前进后一个页面
refresh() 刷新页面
maximize_window() 最大化窗口
minimize_window() 最小化窗口
fullscree_window() 全屏窗口
get_window_size() 获取窗口大小
set_window_size(x,y) 设置窗口大小
close() 关闭当前浏览器窗口
quit() 退出浏览器进程
switch_to_active_element 返回唯一焦点所在元素
switch_to_alert() 切换到alert
switch_to_default_content() 切换到主窗口
switch_to_frame(索引or名称or元素) 切换到frame或iframe
switch_to_window(名称or句柄) 切换到指定窗口
current_url 获取页面url地址
title 获取页面标题
name 获取当前实例的浏览器名称
page_source 获取当前页面的源码
current_windows_handle 获取当前页面的句柄
Window_handles 获取所有回话的窗口句柄

3 获取页面元素的相关信息

方法 说明
.tag_name 获取标签名
.size 获取元素大小
.text 获取元素的文本
get_attribute(’id/name/value等‘) 获取元素的属性信息
.is_displayed() 判断元素是否可见
.is_enabled() 判断元素是否可用
.is_selected() 判断元素是否是选中状态

4 鼠标操作

  • 1.导入类,from selenium.webdriver.common.action_chains import ActionChains
  • 2.定位要操作的元素
  • 3.固定写法,ActionChains(driver).xxx操作(pars).perform()
方法 说明
click() 鼠标单击
ActionChains(driver).click(ele).perform() 鼠标单击
ActionChains(driver).double_click(ele).perform() 鼠标双击
ActionChains(driver).context_click(ele).perform() 鼠标右击
ActionChains(driver).move_to_element(ele).perform() 鼠标指针悬浮操作
ActionChains(driver).drag_and_drop(source,target).perform() 鼠标拖动操作
ActionChains(driver).key_down(ele).perform() 按下鼠标左键

5 键盘操作

方法 说明
send_keys('value') 输入文字
clear() 清空内容
  • 如果使用组合键,需要导入包from selenium.webdriver.common.keys import Keys
  • 组合方法如下:
方法 说明
send_keys('keys.CONTROL','a') Ctrl+A
send_keys('keys.CONTROL','c') Ctrl+C
send_keys('keys.CONTROL','v') Ctrl+V
send_keys(Keys.ENTER) 回车
ActionChains(driver).key_down(Keys.CONTROL).perform() ele.click() 按下ctrl. 单击元素

6 等待机制

6.1 隐性等待

  • webdriver会在预定好的时间内持续地检测元素是否找到,一旦找到,就执行后续的动作,超过了预定时间未找到,就报错(全局等待),使用.implicitly_wait(time)
  • 会减缓测试速度-删除
  • 需要整个页面加载完成才执行-图片,js
  • 隐形会干扰显性,最好不要和显性等待一起使用

6.2 显性等待

  • webdriver等待页面加载完成,找到某个条件发生后再继续执行后续代码,如果超过设置时间检测不到则抛出异常(某个特定元素设置的等待)
  • 导入类:from selenium.webdriver.support.ui import WebDriverWait
.until()
.until_not()
  • 导入模块:from selenium.webdriver.support import expected_conditions
title_is(title)
title_contains(title)
element_to_be_selected(element)
  • 语法:WebDriverWait(driver,timeout).until(可执行的方法,超时后返回的信息)
  • 实例:WebDriverWait(self.driver,10).until(expected_conditions.title_is('管理系统'))
  • 正常使用场景:初始化:wait=WebDriverWait(self.driver,10) 使用:self.wait.until(expected_conditions.title_is('管理系统'))

6.3 强制等待

  • 固定等待多长时间
  • time.sleep(time)

7 截图

.get_screenshot_as_file('D:\selenium.png')
目录
相关文章
|
Web App开发 IDE 测试技术
Selenium WebDriver使用
Selenium WebDriver使用
233 1
数据结构51-封装双向链表 原创
数据结构51-封装双向链表 原创
125 0
数据结构51-封装双向链表 原创
|
14天前
|
人工智能 JSON 机器人
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
本文带你零成本玩转OpenClaw:学生认证白嫖6个月阿里云服务器,手把手配置飞书机器人、接入免费/高性价比AI模型(NVIDIA/通义),并打造微信公众号“全自动分身”——实时抓热榜、AI选题拆解、一键发布草稿,5分钟完成热点→文章全流程!
11504 126
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
|
3天前
|
人工智能 JSON 监控
Claude Code 源码泄露:一份价值亿元的 AI 工程公开课
我以为顶级 AI 产品的护城河是模型。读完这 51.2 万行泄露的源码,我发现自己错了。
3741 8
|
2天前
|
人工智能 数据可视化 安全
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
本文详解如何用阿里云Lighthouse一键部署OpenClaw,结合飞书CLI等工具,让AI真正“动手”——自动群发、生成科研日报、整理知识库。核心理念:未来软件应为AI而生,CLI即AI的“手脚”,实现高效、安全、可控的智能自动化。
1370 3
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
|
13天前
|
人工智能 IDE API
2026年国内 Codex 安装教程和使用教程:GPT-5.4 完整指南
Codex已进化为AI编程智能体,不仅能补全代码,更能理解项目、自动重构、执行任务。本文详解国内安装、GPT-5.4接入、cc-switch中转配置及实战开发流程,助你从零掌握“描述需求→AI实现”的新一代工程范式。(239字)
7653 139
|
4天前
|
人工智能 自然语言处理 数据挖掘
零基础30分钟搞定 Claude Code,这一步90%的人直接跳过了
本文直击Claude Code使用痛点,提供零基础30分钟上手指南:强调必须配置“工作上下文”(about-me.md+anti-ai-style.md)、采用Cowork/Code模式、建立标准文件结构、用提问式提示词驱动AI理解→规划→执行。附可复制模板与真实项目启动法,助你将Claude从聊天工具升级为高效执行系统。
|
3天前
|
云安全 供应链 安全
Axios投毒事件:阿里云安全复盘分析与关键防护建议
阿里云云安全中心和云防火墙第一时间响应
1152 0
|
3天前
|
人工智能 定位技术
Claude Code源码泄露:8大隐藏功能曝光
2026年3月,Anthropic因配置失误致Claude Code超51万行源码泄露,意外促成“被动开源”。代码中藏有8大未发布功能,揭示其向“超级智能体”演进的完整蓝图,引发AI编程领域震动。(239字)
2219 9