软件测试|Python Selenium 库安装使用指南

简介

Selenium 是一个用于自动化浏览器操作的强大工具,它可以模拟用户在浏览器中的行为,例如点击、填写表单、导航等。在本指南中,我们将详细介绍如何安装和使用 Python 的 Selenium 库。

安装 Selenium 库

使用以下命令可以通过 pip 安装 Selenium 库:

pip install selenium

安装 WebDriver

安装selenium之后,我们暂时还不能直接使用脚本去操作浏览器,还需要我们下载浏览器对应的驱动,Chrome,edge,Firefox等不同浏览器需要下载不一样的驱动,同时,驱动也需要对应浏览器的版本,如114版本的Chrome浏览器,驱动也只能是114版本的Chromedriver。

  • Chrome: 下载 Chrome WebDriver
  • Firefox: 下载 Gecko WebDriver
  • Edge: 下载 Edge WebDriver
  • 其他浏览器: 根据浏览器类型下载对应的 WebDriver

注:115版本之后的Chromedriver下载地址为:Chromedriver下载地址

下载 WebDriver 后,将其可执行文件所在的路径添加到系统的环境变量中,以便 Selenium 可以找到它。

使用示例

  1. 第一个示例:打开网页
from selenium import webdriver

# 创建一个 Chrome 浏览器实例
driver = webdriver.Chrome()

# 打开网页
driver.get("https://www.baidu.com")

# 关闭浏览器
driver.quit()
  1. 定位元素

使用 Selenium 可以通过多种方式定位页面中的元素,例如 ID、类名、XPath 等。

from selenium.webdriver.common.by import By


element = driver.find_element(By.ID, "element_id")
element = driver.find_element(By.CLASS_NAME, "element_class")
element = driver.find_element(By.CSS_SELECTOR, "css_selector_expression")
element = driver.find_element(By.XPATH, "//xpath_expression")
  1. 填写表单
input_element = driver.find_element(By.ID,"username")
input_element.send_keys("your_username")

password_element = driver.find_element(By.ID,"password")
password_element.send_keys("your_password")

submit_button = driver.find_element(By.ID,"submit_button")
submit_button.click()
  1. 点击操作
button = driver.find_element(By.ID,"button_id")
button.click()
  1. 等待元素加载

有时候页面元素不会立即加载完毕,需要等待一段时间。可以使用 WebDriverWaitexpected_conditions 来实现等待。

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, "element_id")))

总结

通过这个详细的指南,你应该能够开始使用 Selenium 在 Python 中自动化浏览器操作。根据需要,还可以进一步学习如何处理更复杂的操作、处理弹窗、截图等。Selenium 是一个功能强大的工具,可以在自动化测试、爬虫、数据采集等场景中发挥巨大作用。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/308399.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Matlab 分段函数(piecewise)

语法 pw piecewise(cond1,val1,cond2,val2,...) pw piecewise(cond1,val1,cond2,val2,...,otherwiseVal)描述 pw piecewise(cond1,val1,cond2,val2,...) 返回分段表达式或函数pw,当cond1为True时,其值为val1,当cond2为True时&#xff0…

优化CentOS 7.6的HTTP隧道代理网络性能

在CentOS 7.6上,通过HTTP隧道代理优化网络性能是一项复杂且细致的任务。首先,我们要了解HTTP隧道代理的工作原理:通过建立一个安全的隧道,HTTP隧道代理允许用户绕过某些网络限制,提高数据传输的速度和安全性。然而&…

PyCharm 设置新建Python文件时自动在文章开头添加固定注释的方法

在实际项目开发时,为了让编写的每个代码文件易读、易于维护或方便协同开发时,我们都会在每一个代码文件的开头做一些注释,如作者,文档编写时间,文档的功能说明等。 利用PyCharm 编辑器,我们只需设置相关设…

MS-DETR论文解读

文章目录 前言一、摘要二、引言三、贡献四、MS-DETR模型方法1、模型整体结构解读2、模型改善结构解读3、一对多监督原理 五、实验结果1、实验比较2、论文链接 总结 前言 今天,偶然看到MS-DETR论文,以为又有什么高逼格论文诞生了。于是,我想查…

12.1SPI驱动框架

SPI硬件基础 总线拓扑结构 引脚含义 DO(MOSI):Master Output, Slave Input, SPI主控用来发出数据,SPI从设备用来接收数据 DI(MISO) :Master Input, Slave Output, SPI主控用来发出数据,SPI从设备用来接收…

IPv6路由协议---IPv6动态路由(OSPFv3-4)

OSPFv3的链路状态通告LSA类型 链路状态通告是OSPFv3进行路由计算的关键依据,链路状态通告包含链路状态类型、链路状态ID、通告路由器三元组唯一地标识了一个LSA。 OSPFv3的LSA头仍然保持20字节,但是内容变化了。在LSA头中,OSPFv2的LS age、Advertising Router、LS Sequence…

Java中输入和输出处理(三)二进制篇

叮咚!加油!马上学完 读写二进制文件Data DataInputStream类 FilFeInputStream的子类 与FileInputStream类结合使用读取二进制文件 DataOutputStream类 FileOutputStream的子类 与FileOutputStream类结合使用写二进制文件 读写二进制代码 package 面…

DAPP和APP的区别在哪?

随着科技的飞速发展,我们每天都在与各种应用程序打交道。然而,你是否真正了解DAPP和APP之间的区别呢?本文将为你揭示这两者的核心差异,让你在自媒体平台上脱颖而出。 一、定义与起源 APP,即应用程序,通常指…

使用KubeSphere轻松部署Bookinfo应用

Bookinfo 应用 这个示例部署了一个用于演示多种 Istio 特性的应用,该应用由四个单独的微服务构成。 如安装了 Istio,说明已安装 Bookinfo。 这个应用模仿在线书店的一个分类,显示一本书的信息。 页面上会显示一本书的描述,书籍…

C/C++ 位段

目录 什么是位段? 位段的内存分配 位段的跨平台问题 什么是位段? 位段的声明与结构是类似的,但是有两个不同: 位段的成员必须是 int、unsigned int 或signed int 等整型家族。位段的成员名后边有一个冒号和一个数字 这是一个…

深度学习笔记(二)——Tensorflow环境的安装

本篇文章只做基本的流程概述,不阐述具体每个软件的详细安装流程,具体的流程网上教程已经非常丰富。主要是给出完整的安装流程,以供参考 环境很重要 一个好的算法环境往往能够帮助开发者事半功倍,入门学习的时候往往搭建好环境就已…

【ELISA检测】酶联免疫吸附实验概述-卡梅德生物

酶联免疫吸附实验(Enzyme linked immunosorbent assay,ELISA)是将抗原或抗体结合在固相载体表面,利用抗原抗体的特异性结合以及抗体或者抗原上标记的酶催化特定底物发生显色反应,实现目标物检测的免疫分析方法&#xf…

24/1/10 qt work

1. 完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 如果账号和密码不匹配&…

11 个 Python全栈开发工具集

前言 以下是专注于全栈开发不同方面的 Python 库;有些专注于 Web 应用程序开发,有些专注于后端,而另一些则两者兼而有之。 1. Taipy Taipy 是一个开源的 Python 库,用于构建生产就绪的应用程序前端和后端。 它旨在加快应用程序开发&#xf…

Appium + ios环境搭建过程Mac

前提: 已经搭建好NodeJavaPythonAppium...环境 见下面的文章: ok的话按照下面的步骤搭建IOs的自动化 1. 安装Xcode 官方下载 (Downloads and Resources - Xcode - Apple Developer 1)AppStore 下载安装最新版本 2. 依赖工具 工具名描述libimobile…

Springboot的配置文件详解:从入门到精通,解读配置文件的奇妙世界

目录 1、前言 2、介绍 2.1 Springboot配置文件的作用 2.2 Springboot支持的配置文件类型 2.3 Springboot配置文件的加载顺序 3、YAML配置文件 3.1 YAML基本语法介绍 3.2 YAML中的基本数据类型 3.3 YAML中的复合数据类型 3.4 YAML中的配置属性 3.5 YAML中的多环境配置…

从0开始学Git指令(2)

从0开始学Git指令 因为网上的git文章优劣难评,大部分没有实操展示,所以打算自己从头整理一份完整的git实战教程,希望对大家能够起到帮助! 工作区(Working Directory) 就是你在电脑里能看到的目录&#x…

还不会python 实现常用的数据编码和对称加密?看这篇文章就够啦~

相信很多使用 python 的小伙伴在工作中都遇到过,对数据进行相关编码或加密的需求,今天这篇文章主要给大家介绍对于一些常用的数据编码和数据加密的方式,如何使用 python 去实现。话不多说,接下来直接进入主题: 前言 1…

Windows VSCode 使用Python

一、vscode中安装python 二、下载python.exe(即vscode中需要的python解释器) 下载地址:https://www.python.org/downloads/ 三、安装第三方代码规范工具 参考网址:https://www.python.org/downloads/ 工具介绍 flake8 &#xf…

文心一言API调用,保姆级案例分享

分享一个调用文心一言API的案例。今天自己用程序去过去文心一言模型中获取结果。 文心一言API调用如何收费? 官方给送了20块钱的体验券! 后续收费规则如下 如何开通所需要要的 API key 和 Secret key? api调用需要先在千帆平台开通API key 。…