当前位置: 首页 > news >正文

Selenium的使用

1.简介

Selenium 是一个强大的开源工具,主要用于自动化 Web 浏览器。它允许你通过编写代码来模拟用户在浏览器中的各种操作,例如点击按钮、填写表单、刷新页面等。Selenium 的核心价值在于它能够处理动态内容,特别是那些通过 JavaScript 加载的数据,这使得它在自动化测试和数据爬取领域都非常受欢迎 。

2.核心组成

Selenium WebDriver:这是 Selenium 的核心,也是目前最主要的组件。它提供了一套面向不同编程语言的 API(如 Python、Java、C#),可以直接向浏览器发送指令,驱动浏览器进行各种操作。它能够以本地化方式直接与浏览器交互,标志着浏览器自动化的飞跃 。

Selenium IDE(集成开发环境):这是一个浏览器插件(支持 Chrome、Firefox 和 Edge),主要功能是录制和回放用户在浏览器中的操作。它非常适合快速创建简单的测试脚本或进行自动化辅助的探索性测试,但不适合构建复杂、健壮的自动化套件 。

Selenium Grid:这个工具允许你在多台机器上并行运行测试。通过一个中心点来管理不同的浏览器和操作系统组合,它可以显著缩短大型测试套件的执行时间。

3.上手实例

准备:在这之前需要安装Selenium库,在命令行中运行 pip3 install selenium

OK,现在我们开始进行实例,编写一个自动化脚本:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC# 初始化一个 Chrome 浏览器实例
driver = webdriver.Chrome()  # 确保 chromedriver 在系统路径中try:# 打开百度首页driver.get("https://www.baidu.com")# 定位到搜索框元素(通过元素的ID属性)search_box = driver.find_element(By.ID, "kw")# 在搜索框中输入文本 "Selenium"search_box.send_keys("Selenium")# 模拟键盘按下回车键进行搜索search_box.send_keys(Keys.RETURN)# 使用显式等待,确保搜索结果区域已经加载出来WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "content_left")))# 打印当前页面的标题print("搜索后的页面标题是:", driver.title)finally:# 等待一段时间让你能看到浏览器窗口import timetime.sleep(5)  # 等待5秒# 关闭浏览器driver.quit()

这里浏览器在完成指令后会自动关闭,这是正常现象。

代码解析

webdriver.Chrome()启动了 Chrome 浏览器。

driver.get(url)导航到指定的网址。

driver.find_element(By.ID, "kw")通过 ID 定位页面上的搜索框。

send_keys()方法用于向输入框输入文本或模拟按键。

WebDriverWait显式等待,它会等待某个条件(如元素出现)满足后再继续执行,这比固定的 time.sleep()更高效可靠 。

driver.quit()会关闭所有浏览器窗口并结束 WebDriver 会话,确保资源被释放。

4.查找节点

Selenium 提供了多种定位方式,如 NAMECLASS_NAMECSS_SELECTOR和 XPATH。其中,CSS_SELECTOR在性能和可读性上通常有较好平衡,而 XPATH则非常灵活,可以处理复杂的定位场景。

单节点实例
from selenium import webdriver
from selenium.webdriver.common.by import Bybrowser = webdriver.Chrome()
browser.get('https://www.taobao.com')
input_first = browser.find_element(By.ID, 'q')
input_second = browser.find_element(By.CSS_SELECTOR, '#q')
input_third = browser.find_element(By.XPATH, '//*[@id="q"]')
print(input_first, input_second, input_third)
browser.close()
多节点实例
from selenium import webdriver
from selenium.webdriver.common.by import Bybrowser = webdriver.Chrome()
browser.get('https://www.taobao.com')
lis = browser.find_elements(By.CSS_SELECTOR, '.service-bd li')
print(lis)
browser.close()

应用场景小结:

自动化测试:这是 Selenium 最主要和最初的用途,用于对 Web 应用程序进行功能测试、回归测试等,能极大提高测试效率和覆盖率 。

网络爬虫和数据抓取:对于需要登录、有复杂 JavaScript 渲染或反爬机制较强的网站,Selenium 可以模拟真实用户行为,有效获取动态加载的数据 。

重复性网页任务自动化:例如,自动提交表单、定期检查网页内容、批量下载网页资源等任何需要在浏览器中手动重复进行的任务,都可以用 Selenium 自动化完成 。

Selenium能做的远不止这些,今后的学习将继续深挖。

http://www.dtcms.com/a/603354.html

相关文章:

  • 皮革城网站建设方案农场游戏系统开发网站建设推广
  • 新开传奇网站发布网中变做微信的网站
  • Memcached 教程
  • 哪家网站做民宿好互联网保险发展现状分析
  • springboot基于Java的在线考试系统设计与实现(代码+数据库+LW)
  • 郑州公路建设有限公司网站网上商店系统设计与开发
  • 鹤山做网站建站平台加盟
  • 建设资格注册管理中心网站网站设计师和ui设计师
  • 中英文网站建设企业金水区网站建设
  • 创可贴网站怎么做图片大全外国出名的设计网站
  • 淘宝网站建设原理东莞网站建设基本流程图
  • 创业网站怎么做的东莞东城楼盘
  • 从虚拟机里面下载文件到本地桌面怎么比较方便
  • 酒泉北京网站建设移动端app开发公司
  • dism++实操之注入驱动
  • C++模板:泛型编程与函数模板详解(上)
  • 佛山网站建设公司电话温州市瓯海建设局网站
  • 反编译要会几种语言|深入理解反编译技术及其应用
  • 网站开发所需资料网站建设需要哪些专业技术
  • 湖南网站建设联系电话网站开发带后台
  • C语言反编译器 | 如何使用反编译工具恢复源代码
  • 哈尔滨网站设计公司枣庄三合一网站开发
  • C语言编译器哪个好学 | 选择合适的C语言编译器,助力编程学习
  • 太原微信网站开发微商城手机网站模板
  • JUC的常见类
  • win7iis配置网站vps搭建个人网站
  • 【剑斩OFFER】算法的暴力美学——点名
  • 昆明做网站公司我网站建设
  • word文档文字的尾部空格设置不了下划线【解决办法】
  • 网站建设上线多久网站设计公司网页设计