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

学习Python中Selenium模块的基本用法(5:程序基本步骤)

  使用Selenium操作浏览器,其内部即通过WebDriver向浏览器发送操作命令,根据Selenium官网帮助文档中的介绍,Selenium脚本一般分为8个步骤(如下图所示):
1)使用驱动实例开启会话:调用浏览器对应的WebDriver启动新的浏览器实例;
2)在浏览器上执行操作:在新的浏览器实例中跳转到某一网址;
3)请求浏览器信息:通过浏览器驱动获取浏览器基本信息,如浏览器设置、当前页面名称、当前页面网址等;
4)建立等待策略:由于网络原因或其它原因导致页面加载慢,需要设置等待时间以便浏览器能完成页面内容加载,可以使用Selenium内置的隐式等待或显式等待,也可以调用第三方库(如time)设置等待时间;
5)发送命令查找元素:按元素id、class名称、xpath等方式查找页面中的元素;
6)操作元素:对于步骤5中的找到的元素,可以执行输入文本、点击按钮、发送键盘按键等操作;
7) 获取元素信息:对于步骤5中的找到的元素,查看元素相关信息,如元素内容、显示状态、启用状态、选中状态等;
8)结束会话:功能测试完成后关闭浏览器实例。

=400x300
  上述步骤可以按需裁减,如不需要浏览器信息、元素信息等,根据帮助文档的示例编写了打开CSDN网站搜索selenium的简单程序,程序代码及运行效果如下图所示(CSDN主页的搜索框使用Selenium发送回车键或自动点击搜索按钮会弹出登录提示框,人工操作不会出现提示框,暂时不清楚怎么处理):

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time# 使用驱动实例开启会话
driver = webdriver.Chrome()# 在浏览器上执行操作
driver.get("https://www.csdn.net/")
# 请求浏览器信息
print('页面标题:'+driver.title)
# 建立等待策略
time.sleep(5)# 发送命令查找元素
search_box = driver.find_element(By.ID, "toolbar-search-input") 
# 操作元素
search_box.send_keys("selenium")# 发送命令查找元素
search_button = driver.find_element(By.ID, "toolbar-search-button")
# 获取元素信息
print('按钮名称:'+search_button.text)# 操作元素
search_button.click()time.sleep(10)
# 结束会话
driver.quit()

在这里插入图片描述
在这里插入图片描述

  
  
  
  
  
  
  

参考文献:
[1]https://www.selenium.dev/zh-cn/
[2]https://www.selenium.dev/zh-cn/documentation/webdriver/getting_started/
[3]https://blog.csdn.net/kk_lzvvkpj/article/details/148610502
[4]https://registry.npmmirror.com/binary.html?path=chromedriver/
[5]https://chromedriver.chromium.org/

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

相关文章:

  • MySQL数据库备份与恢复
  • 《棒球百科》奥运会取消了棒球·野球1号位
  • 旋钮键盘项目---foc讲解(闭环位置控制)
  • Redis-plus-plus API使用指南:通用操作与数据类型接口介绍
  • TensorFlow|张量流
  • C/C++复习(四)
  • 【LeetCode】单链表经典算法:移除元素,反转链表,约瑟夫环问题,找中间节点,分割链表
  • Javascript面试题及详细答案150道之(106-120)
  • 深度学习——常见的神经网络
  • Tomcat 类加载器原理深度解析
  • PowerPoint和WPS演示让多个对象通过动画同时出现
  • 近期(2021-2025)发行的常用国军标GJB 整理,2021,2022,2023,2024,2025
  • 深入理解QFlags:Qt中的位标志管理工具
  • 本文将详细介绍如何构建一个功能完整的键盘测试工具,包含虚拟键盘、实时统计、打字练习等核心功能,无需任何后端服务或复杂依赖。
  • 无人机视角土地区域类型识别分割数据集labelme格式4904张7类别
  • 使用oradebug收集数据库诊断信息
  • 第3章 Java NIO核心详解
  • AOP配置类自动注入
  • Linux系统分析 CPU 性能问题的工具汇总
  • 【102页PPT】某著名企业智能制造解决方案及智能工厂产品介绍(附下载方式)
  • 19.5 「4步压缩大模型:GPTQ量化实战让OPT-1.3B显存直降75%」
  • 微网智能光储协调控制器方案
  • 【运维进阶】实施任务控制
  • 网络原理与编程实战:从 TCP/IP 到 HTTP/HTTPS
  • 基于Vue的个人博客网站的设计与实现/基于node.js的博客系统的设计与实现#express框架、vscode
  • Rust 入门 生命周期(十八)
  • 力扣3:无重复字符的最长子串
  • Linux软件编程:进程与线程(线程)
  • 最新技术论坛技术动态综述
  • 【论文阅读】美 MBSE 方法发展分析及启示(2024)