### Selenium自动化知识点详解 #### 一、环境搭建与配置 **1.1 环境搭建** ##### 1.1.1 Selenium简介 Selenium 是一个用于 Web 应用程序测试的工具。它可以直接运行在浏览器中,就像真正的用户在操作一样。支持多种操作系统如 Windows、Mac 和 Linux,并且支持多种语言,包括 Java、C#、Python、Ruby 等。 ##### 1.1.2 Python 安装 Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。为了使用 Selenium 进行自动化测试,首先需要安装 Python。可以访问 Python 官方网站 (https://www.python.org/downloads/) 下载最新版本的 Python。在安装过程中,确保勾选“Add Python to PATH”选项,以便将 Python 添加到系统的环境变量中。 ##### 1.1.3 设置环境变量 安装完成后,需要设置环境变量,使系统能够在任何位置执行 Python 命令。对于 Windows 用户来说,可以通过控制面板进入“系统”->“高级系统设置”->“环境变量”,在“系统变量”中找到“Path”并编辑,在其中添加 Python 的安装路径及 Scripts 文件夹路径。 ##### 1.1.4 安装 Selenium 通过 pip 工具安装 Selenium,命令为 `pip install selenium`。如果遇到权限问题,可以在命令前加上 `sudo` (适用于 Linux 或 macOS)。安装成功后,可以通过 Python 脚本进行验证。 ##### 1.1.5 验证 Selenium 在 Python 环境中输入以下代码来验证 Selenium 是否正确安装: ```python from selenium import webdriver driver = webdriver.Chrome() driver.quit() ``` 如果能够正常运行并关闭 Chrome 浏览器,说明安装成功。 ##### 1.1.6 浏览器 Selenium 支持多种浏览器,包括 Chrome、Firefox、Edge 等。为了使用 Selenium 控制这些浏览器,需要安装相应的 WebDriver,例如 ChromeDriver 对于 Chrome 浏览器。 **1.2 Pip 降级 Selenium 3.0** ##### 1.2.1 遇到问题 在某些情况下,由于兼容性问题或特定需求,可能需要将 Selenium 版本降级到 3.0。 ##### 1.2.2 解决方案 使用 pip 的 `--upgrade` 和 `==` 参数指定版本进行降级安装。例如:`pip install selenium==3.0.0 --upgrade`。 ##### 1.2.3 检查 Pip 环境 检查 Pip 版本和已安装的 Selenium 版本,以确保降级操作正确完成。使用 `pip list` 命令查看安装的包列表。 ##### 1.2.4 Pip 查看 Selenium 版本号 使用 `pip show selenium` 命令查看 Selenium 的版本信息。 ##### 1.2.5 Pip 降级 Selenium 通过上述步骤降级 Selenium 至所需版本。 ##### 1.2.6 升级 Pip 版本 如果需要更新 Pip,可以使用 `pip install --upgrade pip` 命令。 **1.3 解决 Pip 使用异常** ##### 1.3.1 Pip 出现异常 Pip 在使用过程中可能会遇到网络错误或其他问题。 ##### 1.3.2 解决办法 确保网络连接正常,尝试使用代理服务器或更改镜像源。 ##### 1.3.3 配置环境变量 确保 Pip 的可执行文件位于系统 PATH 中。 **1.4 Chrome 浏览器(ChromeDriver)** ##### 1.4.1 Chrome 遇到问题 在使用 ChromeDriver 时可能会遇到兼容性问题或驱动版本不匹配等问题。 ##### 1.4.2 查看版本号 可以通过 Chrome 的帮助菜单中的“关于 Google Chrome”选项来查看版本号。 ##### 1.4.3 ChromeDriver ChromeDriver 是 Chrome 浏览器的自动化测试工具。需要下载与浏览器版本相匹配的 ChromeDriver,并将其路径添加到系统环境变量中。 ##### 1.4.4 各版本匹配表 可以参考官方文档或社区资源获取 ChromeDriver 与 Chrome 版本之间的对应关系。 **1.5 PyCharm 使用** ##### 1.5.1 PyCharm 安装 PyCharm 是一款非常强大的 Python IDE,可以从其官方网站 (https://www.jetbrains.com/pycharm/) 下载并安装。 ##### 1.5.2 新建工程 打开 PyCharm,选择 “File” -> “New Project” 来创建一个新的项目。 ##### 1.5.3 新建脚本 在项目中右键点击,选择 “New” -> “Python File” 创建新的 Python 脚本。 ##### 1.5.4 开始编程 在脚本中导入 Selenium 相关模块,并编写自动化测试代码。 **1.6 Selenium 3 + Firefox 环境搭建** ##### 1.6.1 安装 Python 如上所述安装 Python。 ##### 1.6.2 检查 Pip 工具 确保 Pip 正常可用。 ##### 1.6.3 安装 Selenium 3.0 使用 `pip install selenium==3.0.0` 安装 Selenium 3.0。 ##### 1.6.4 检查 Selenium 环境 验证 Selenium 是否正确安装。 ##### 1.6.5 遇到第一个坑 可能遇到的问题及解决方法。 ##### 1.6.6 遇到第二个坑 可能遇到的问题及解决方法。 ##### 1.6.7 遇到第三个坑 可能遇到的问题及解决方法。 #### 二、WebDriver 操作 **2.1 操作浏览器基本方法** ##### 2.1.1 打开网页 使用 `driver.get(url)` 方法打开指定 URL。 ##### 2.1.2 设置休眠 使用 `time.sleep(seconds)` 方法设置休眠时间。 ##### 2.1.3 页面刷新 使用 `driver.refresh()` 刷新页面。 ##### 2.1.4 页面切换 使用 `driver.switch_to.window(window_name)` 切换窗口。 ##### 2.1.5 设置窗口大小 使用 `driver.set_window_size(width, height)` 设置窗口尺寸。 ##### 2.1.6 截屏 使用 `driver.save_screenshot(path)` 保存截图。 ##### 2.1.7 退出 使用 `driver.quit()` 关闭浏览器。 ##### 2.1.8 加载浏览器配置 通过 WebDriver 的构造函数加载特定配置。 **2.2 常用 8 种元素定位** ##### 2.2.1 环境准备 准备一个待测试的 Web 页面。 ##### 2.2.2 查看页面元素 使用 Firebug 或其他工具查看页面元素。 ##### 2.2.3 find_element_by_id() 通过 ID 定位元素:`driver.find_element(By.ID, "element_id")`。 ##### 2.2.4 find_element_by_name() 通过名称定位元素:`driver.find_element(By.NAME, "element_name")`。 ##### 2.2.5 find_element_by_class_name() 通过类名定位元素:`driver.find_element(By.CLASS_NAME, "class_name")`。 ##### 2.2.6 find_element_by_tag_name() 通过标签名定位元素:`driver.find_element(By.TAG_NAME, "tag_name")`。 ##### 2.2.7 find_element_by_link_text() 通过链接文本定位元素:`driver.find_element(By.LINK_TEXT, "link_text")`。 ##### 2.2.8 find_element_by_partial_link_text() 通过部分链接文本定位元素:`driver.find_element(By.PARTIAL_LINK_TEXT, "partial_link_text")`。 ##### 2.2.9 find_element_by_xpath() 通过 XPath 定位元素:`driver.find_element(By.XPATH, "xpath_expression")`。 ##### 2.2.10 find_element_by_css_selector() 通过 CSS 选择器定位元素:`driver.find_element(By.CSS_SELECTOR, "css_selector")`。 **2.3 XPath 定位** ##### 2.3.1 XPath: 属性定位 使用 XPath 的属性选择器:`//element[@attribute='value']`。 ##### 2.3.2 XPath: 其它属性 使用 XPath 选择具有多个属性的元素:`//element[@attribute1='value1' and @attribute2='value2']`。 ##### 2.3.3 XPath: 标签 选择特定标签下的元素:`//div/span`。 ##### 2.3.4 XPath: 层级 选择某个元素下的子元素:`//parent/child`。 ##### 2.3.5 XPath: 索引 选择某个标签下的第 N 个子元素:`//parent/child[n]`。 ##### 2.3.6 XPath: 逻辑运算 使用逻辑运算符组合条件:`//element[contains(@attribute, 'value') and @another_attribute='another_value']`。 ##### 2.3.7 XPath: 模糊匹配 使用 XPath 的模糊匹配功能:`//*[contains(text(), 'text')]`。 **2.4 CSS 定位语法** ##### 2.4.1 CSS: 属性定位 使用 CSS 的属性选择器:`element[attribute=value]`。 ##### 2.4.2 CSS: 其它属性 使用 CSS 选择具有多个属性的元素:`element[attribute1=value1][attribute2=value2]`。 ##### 2.4.3 CSS: 标签 选择特定标签下的元素:`div span`。 ##### 2.4.4 CSS: 层级关系 选择某个元素下的子元素:`parent > child`。 ##### 2.4.5 CSS: 索引 选择某个标签下的第 N 个子元素:`parent:nth-child(n)`。 ##### 2.4.6 CSS: 逻辑运算 使用伪类选择器组合条件:`element:has(selector)`。 ##### 2.4.7 CSS: 模糊匹配 使用伪类选择器进行模糊匹配:`element:contains('text')`。 **2.5 SeleniumBuilder 辅助定位元素** ##### 2.5.1 安装 SeleniumBuilder SeleniumBuilder 是一个用于辅助元素定位的工具,可以简化测试脚本的编写过程。可以通过 Python 的 pip 工具安装 SeleniumBuilder:`pip install seleniumbuilder`。 ##### 2.5.2 直接运用 安装完成后,可以利用 SeleniumBuilder 提供的方法进行元素定位。 ##### 2.5.3 实践案例 提供具体的使用示例。 **2.6 操作元素(键盘和鼠标事件)** ##### 2.6.1 简单操作 模拟简单的键盘和鼠标操作。 ##### 2.6.2 submit 提交表单 使用 `element.submit()` 提交表单。 ##### 2.6.4 鼠标悬停事件 使用 `ActionChains` 类模拟鼠标悬停事件:`actions.move_to_element(element).perform()`。 **2.7 多窗口、句柄(handle)** ##### 2.7.1 认识多窗口 当浏览器打开新窗口时,需要切换到正确的窗口进行操作。 ##### 2.7.2 获取当前窗口句柄 使用 `driver.current_window_handle` 获取当前窗口的句柄。 ##### 2.7.3 获取所有句柄 使用 `driver.window_handles` 获取所有窗口的句柄。 #### 三、总结 以上是 Selenium 自动化的基础知识介绍,包括环境搭建、浏览器操作、元素定位等。掌握这些知识是进行 Web 自动化测试的基础。随着实践经验的积累,开发者将能够更高效地利用 Selenium 进行复杂的自动化任务。
剩余349页未读,继续阅读
- 粉丝: 3
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助