当前位置: 首页 > 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.lryc.cn/news/623887.html

相关文章:

  • Python数据类型转换详解:从基础到实践
  • Python 基础语法(二)
  • 0️⃣基础 认识Python操作文件夹(初学者)
  • Linux:TCP协议
  • RK3568平台开发系列讲解:PCIE trainning失败怎么办
  • 深入解析函数指针及其数组、typedef关键字应用技巧
  • 0-12岁幼儿启蒙与教育
  • CF2121C Those Who Are With Us
  • 2001-2024年中国玉米种植分布数据集
  • 【牛客刷题】01字符串按递增长度截取并转换为十进制数值
  • Day07 缓存商品 购物车
  • 14.web api 5
  • LEA(Load Effective Address)指令
  • 19.5 「4步压缩大模型:GPTQ量化实战让OPT-1.3B显存直降75%」
  • 混沌工程(Chaos engineering):系统韧性保障之道
  • 图解希尔排序C语言实现
  • 【Java】多线程Thread类
  • 2025年- H97-Lc205--23.合并k个升序链表(链表、小根堆、优先队列)--Java版
  • 【撸靶笔记】第二关:GET -Error based -Intiger based
  • 【102页PPT】新一代数字化转型信息化总体规划方案(附下载方式)
  • 2.4 双向链表
  • 牛客周赛 Round 104(小红的矩阵不动点/小红的不动点权值)
  • 03高级语言逻辑结构到汇编语言之逻辑结构转换if (...) {...} else if {...} else {...}
  • react 错误边界
  • git stash临时保存工作区
  • Win11 文件资源管理器预览窗格显示 XAML 文件内容教程
  • 【牛客刷题】成绩统计与发短信问题详解
  • 【Git系列】如何从 Git 中删除 .idea 目录
  • 【线程安全(二) Java EE】
  • 寻找数组的中心索引