selenium模块的基本使用

一、selenium概述

Selenium 是一套用于Web应用程序自动化测试的工具,它直接运行在浏览器中,就像真正的用户在操作一样。Selenium支持多种浏览器(如Chrome、Firefox、Edge等)和多种编程语言(如Java、Python、C#等)

二、selenium的优势

  • 开源免费:不涉及许可费用,降低了测试成本。
  • 跨平台与跨浏览器:支持多种操作系统和浏览器,提高了测试的灵活性。
  • 编程语言支持:支持多种编程语言,便于不同技术栈的开发者使用。
  • 集成能力强:可以与TestNG、JUnit、Maven、Jenkins等工具集成,实现持续测试。

三、 Selenium WebDriver

  • 原理:WebDriver 驱动浏览器,发送请求给浏览器驱动,浏览器驱动解析请求并发送给浏览器执行。
  • 环境搭建:需要下载对应浏览器的驱动(如chromedriver),并将其路径添加到系统的环境变量中。

四、 Selenium API

  • WebDriver 常用 API :如driver.get(url)用于打开网页,driver.find_element_by_*()用于定位元素,driver.quit()用于退出浏览器等。
  • WebElement 常用 API :如element.click()用于点击元素,element.send_keys()用于向输入框发送文本等。

五、元素定位

Selenium 支持多种元素定位方式,包括:

  • id:通过元素的id属性定位。
  • name:通过元素的name属性定位。
  • class name:通过元素的class属性定位。
  • tag name:通过元素的标签名定位。
  • link text:通过链接文本定位超链接。
  • partial link text:通过链接文本的一部分定位超链接。
  • xpath:通过XML路径语言定位元素。
  • css selector:通过CSS选择器定位元素。

六、元素等待机制

  • 硬性等待 :使用time.sleep()强制等待一定时间,不推荐使用。
  • 隐式等待 :通过driver.implicitly_wait(time)设置全局等待时间,当查找元素时,如果元素不在DOM中,则等待直到超时时间。
  • 显式等待 :使用WebDriverWait结合expected_conditions设置等待条件,只针对某个元素等待直到满足条件。

七、 其他高级功能

  • 操作JavaScript :通过driver.execute_script()执行JavaScript代码。
  • 处理弹出框 :如alertconfirm等。
  • 控制浏览器操作:如窗口大小、浏览器前进后退等。
  • 模拟鼠标键盘操作:如鼠标移动、点击、键盘输入等。

八、selenium元素定位技巧

1、id find_element_by_id()

2、name find_element_by_name()

3、class name find_element_by_class name()

4、tag name find_element_by_tag name()

5、link text find_element_by_link text()

6、partial link text find_element_by_partial link_text()

7、xpath find_element_by_xpath()

8、css selector find_element_by_css selector()

相关推荐
钱栈up23 分钟前
番茄小说榜单爬虫失效排查:从页面路由变更到API参数映射的全流程复盘
python
唐璜Taro34 分钟前
Agent Harness 系列 · 第 1 篇|Agent 不只是换一个更强的模型
人工智能·python
码行山野赴时序归途1 小时前
链表家族收官篇:循环链表
c语言·开发语言·数据结构·链表
泡茶喝茶写代码1 小时前
量化数据进阶:多维实战篇(第 11 篇):历史涨跌停价:涨跌停序列与止损线测算
java·python·股票数据api·股票数据·股票数据api接口·股票api数据接口·股票量化数据api
景熙55231 小时前
单体项目编写思路和落地形式
java·开发语言
ikun_文2 小时前
Django开启跨域请求
python·pycharm·django
外收内放2 小时前
Python与AI应用(项目开发实战:AI智能伴侣第三版)
python·学习·ai编程
别动我齐刘海2 小时前
ROS2 Jazzy + C++ 实战路线——进阶学习3
c++·人工智能·vscode·python·算法·机器学习·机器人
Logintern092 小时前
“以一致的顺序获取锁“是预防死锁最核心、最有效的手段
python·postgresql·锁机制
计算机毕设定制辅导-无忧学长2 小时前
《基于SpringBoot的未成年人健康知识科普平台的设计与实现》
java·开发语言·vue.js·spring boot·未成年人健康知识科普平台