【Python从入门到进阶】35、selenium基本语法学习

这篇具有很好参考价值的文章主要介绍了【Python从入门到进阶】35、selenium基本语法学习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

接上篇《34、selenium基本概念及安装流程》
上一篇我们介绍了selenium技术的基础概念以及安装和调用的流程,本篇我们来学习selenium的基本语法,包括元素定位以及访问元素信息的操作。

一、元素定位

Selenium元素定位是指通过特定的方法在网页中准确定位到需要操作的元素,例如按钮、文本框、下拉菜单等。以下是一些常用的Selenium元素定位相关的语法:

1、Selenium3.x版本前

在Selenium3.x版本及之前,语法如下:
(1)通过ID定位元素
element = driver.find_element_by_id("element_id")
(2)通过名称定位元素
element = driver.find_element_by_name("element_name")
(3)通过类名定位元素
element = driver.find_element_by_class_name("class_name")
(4)通过标签名定位元素
element = driver.find_element_by_tag_name("tag_name")
(5)通过链接文本定位元素(<a> 标签)
element = driver.find_element_by_link_text("link_text")
(6)通过部分链接文本定位元素(<a> 标签)
element = driver.find_element_by_partial_link_text("partial_link_text")
(7)通过XPath定位元素
element = driver.find_element_by_xpath("xpath_expression")
(8)通过CSS选择器定位元素
element = driver.find_element_by_css_selector("css_selector")
上面都是获取单个元素,要获取多个元素,将其中的element修改为elements即可。

2、Selenium4.x版本后

在Selenium4.x版本后,元素的定位不再是上面这种一个类型一个方法的模式,而是变为两个方法find_element和find_elements:
【Python从入门到进阶】35、selenium基本语法学习,Python从入门到进阶,python,selenium,find_element,find_elements,By.CSS_SELECTOR
其中find_element方法返回一个元素(源码):
【Python从入门到进阶】35、selenium基本语法学习,Python从入门到进阶,python,selenium,find_element,find_elements,By.CSS_SELECTOR
find_elements方法返回一个列表(源码):
【Python从入门到进阶】35、selenium基本语法学习,Python从入门到进阶,python,selenium,find_element,find_elements,By.CSS_SELECTOR
而通过ID还是NAME等获取方式,变为一个By对象的属性,作为参数入参到find_element和find_elements方法中,BY源码如下:
【Python从入门到进阶】35、selenium基本语法学习,Python从入门到进阶,python,selenium,find_element,find_elements,By.CSS_SELECTOR
需要通过什么方式获取元素,就“By.方式”即可。
具体的语法示例:

# 根据xpath选择元素(万金油)
driver.find_element(By.XPATH, '//*[@id="kw"]') 
# 根据css选择器选择元素
driver.find_element(By.CSS_SELECTOR, '#kw') 
# 根据name属性值选择元素
driver.find_element(By.NAME, 'wd') 
# 根据类名选择元素
driver.find_element(By.CLASS_NAME, 's_ipt') 
# 根据链接文本选择元素
driver.find_element(By.LINK_TEXT, 'hao123') 
# 根据包含文本选择
driver.find_element(By.PARTIAL_LINK_TEXT, 'hao') 
# 根据标签名选择
# 目标元素在当前html中是唯一标签或众多标签第一个时候使用
driver.find_element(By.TAG_NAME, 'title') 
# 根据id选择
driver.find_element(By.ID, 'su') 

以上是一些常见的Selenium元素定位方法。根据需要,我们可以使用这些语法来定位网页中的元素并进行操作。

二、元素访问

Selenium元素通过定位和访问网页上的元素,可以模拟用户与网页的交互操作,通过访问和操作元素,自动执行各种操作,如点击按钮、输入文本、填写表单、选择下拉框等用户界面操作,从而完成各种网页任务。

1、获取元素文本

element_text = element.text

将元素的可见文本内容作为字符串返回。

2、获取元素属性

attribute_value = element.get_attribute("attribute_name")

获取元素指定属性的值,例如"href"属性。

3、执行点击操作

element.click()

模拟用户点击元素,触发相应的事件。

4、输入文本到输入框

element.send_keys("text")

将指定文本输入到文本框或输入框中。

5、提交表单

element.submit()

提交包含该元素的表单。

6、切换到iframe

driver.switch_to.frame(element)

切换到指定的iframe或frame中,以便在其中进行操作。
这些语法示例展示了常见的功能,我们可以根据具体需求选择相应的方法来访问和操作网页中的元素。

三、元素定位及访问示例

我们按照类似上一章节访问百度首页的例子,来应用一下上述元素定位及访问的方法。完整代码如下:

# _*_ coding : utf-8 _*_
# @Time : 2023-09-09 19:31
# @Author : 光仔December
# @File : selenium元素定位及获取测试
# @Project : Python_Projects

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

# 初始化浏览器驱动程序
driver = webdriver.Chrome()

try:
    # 打开网页
    driver.get('https://www.baidu.com')
    # (1)通过ID定位百度搜索的按钮
    element1 = driver.find_element(By.ID, "su")
    # 获取按钮中的字符串并打印
    print("百度搜索首页按钮上的字是:", element1.get_attribute("value"))
    # (2)通过名称定位元素(百度的搜索输入框)
    element2 = driver.find_element(By.NAME, "wd")
    # 给输入框输入字符串“我要学python”
    element2.send_keys("我要学python")
    element1.click() # 点击搜索
    # (3)通过类名定位元素(获取输入框右侧的小相机图标)
    element3 = driver.find_element(By.CLASS_NAME, "soutu-btn")
    print("百度搜索框图标class名是:", element3.get_attribute("class"))
    # (4)根据css选择器选择元素
    element4 = driver.find_element(By.CSS_SELECTOR, '#s_lg_img_new')
    print("百度首页Logo图片的src是:", element4.get_attribute("src"))
    # (5)根据链接文本选择元素(获取首页贴吧的地址)
    element5 = driver.find_element(By.LINK_TEXT, '贴吧')
    print("百度首页贴吧的href是:", element5.get_attribute("href"))
    # (6)根据包含文本选择(获取首页带“图”字的元素,及其链接)
    element6 = driver.find_elements(By.PARTIAL_LINK_TEXT, '图')
    # 遍历获取到的元素集合
    i = 1
    print("百度首页带”图“字的超链接地址:")
    for ele in element6:
        print(f"    第{i}个连接名为【{ele.text}】,href是:{ele.get_attribute('href')}")
        i += 1
    # (7)根据标签名选择
    # 目标元素在当前html中是唯一标签或众多标签第一个时候使用
    element7 = driver.find_element(By.TAG_NAME, 'body')
    print("百度首页body的class:", element7.get_attribute("class"))
    # 等待10秒看结果
    time.sleep(10)
finally:
    # 关闭浏览器
    driver.close()

效果:
【Python从入门到进阶】35、selenium基本语法学习,Python从入门到进阶,python,selenium,find_element,find_elements,By.CSS_SELECTOR

下一篇我们继续讲解Selenium交互相关的内容。

参考:尚硅谷Python爬虫教程小白零基础速通教学视频
转载请注明出处:https://guangzai.blog.csdn.net/article/details/132781705文章来源地址https://www.toymoban.com/news/detail-703753.html

到了这里,关于【Python从入门到进阶】35、selenium基本语法学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python】【进阶篇】二十四、Python爬虫的Selenium的基本用法

    Selenium 作为一款 Web 自动化测试框架,提供了诸多操作浏览器的方法,本节对其中的常用方法做详细介绍。 Selenium 提供了 8 种定位单个节点的方法,如下所示: 定位节点方法 方法 | 说明 ---|--- find_element_by_id() | 通过 id 属性值定位 find_element_by_name() | 通过 name 属性值定位 find

    2024年02月04日
    浏览(83)
  • Python入门教程 - 基本语法 (一)

    目录 一、注释 二、Python的六种数据类型 三、字符串、数字 控制台输出练习 四、变量及基本运算 五、type()语句查看数据的类型 六、字符串的3种不同定义方式 七、数据类型之间的转换 八、标识符命名规则规范 九、算数运算符 十、赋值运算符 十一、字符串扩展 11.1 转义字

    2024年02月10日
    浏览(36)
  • Python学习笔记—基本语法

    1、一般代码第一行会有#!/usr/bin/python3 这句注释是告诉操作系统执行该脚本时,调用/usr/bin目录下的Python 解释器。 在windows 下可以不写第一行注释 2、多行注释’’’和”””,用法类似verilog中的/**/ 如 ’’’ 第一行注释 第二行注释 ‘’‘ 3、多行语句表示 一般最好是一行

    2024年02月07日
    浏览(42)
  • python爬虫从0到1 -selenium的基本使用(1),非常适合收藏的Python进阶重难点笔记

    5.根据标签名字来获取对象 button = browser.find_element_by_tag_name(‘input’) 6.通过当前页面中的链接文本来获取对象 button = browser.find_element_by_link_text(‘新闻’) (五)selenium访问元素信息 ==================================================================================== 例: 1.获取元素属性的属性值

    2024年04月09日
    浏览(50)
  • 【Python从入门到进阶】22、urllib库基本使用

    接上篇《21、爬虫相关概念介绍》 上一篇我们介绍了爬虫的相关概念,本篇我们来介绍一下用Python实现爬虫的必备基础,urllib库的学习。 我们今后的学习可能需要用到很多python库(library),及引用其他已经编写好的程序代码模块,来提高我们的开发效率。 python库(library)是

    2024年02月07日
    浏览(49)
  • 【Python从入门到进阶】39、使用Selenium自动验证滑块登录

    接上篇《38、selenium关于Chrome handless的基本使用》 上一篇我们介绍了selenium中有关Chrome的无头版浏览器Chrome Handless的使用。本篇我们使用selenium做一些常见的复杂验证功能,首先我们来讲解如何进行滑块自动验证的操作。 我们要通过selenium来实现目前常见的滑块验证码的验证,

    2024年02月08日
    浏览(51)
  • Python的selenium闪退和谷歌浏览器版本或驱动不兼容问题解决方法以及基本配置语法(Selenium和Google版本及GoogleDriver版本对应)

    Python的selenium库有各种的版本,谷歌浏览器也有各种版本和驱动,在这里就是下载一个专门为了应用selenium自动化下载的驱动和谷歌版本。 这个网页就是下载的 ===谷歌浏览器和对应驱动下载地址 1.去到网页选择对应的版本 如果你是Mac系统就选Mac,如果是Linux就选Linux,我这里

    2024年02月04日
    浏览(51)
  • 深度解析Python关键字:掌握核心语法的基石(新版本35+4)

    目录 keyword 列表 kwlist softkwlist  分类  数据类型 True、False None 运算类型 and、or、not in is 模块导入 import 辅助 from、as 上下文管理 with 占位语句 pass 流程控制 if、elif、else for while break、continue 类和函数 class def lambda return yeild 变量相关 global nonlocal de

    2024年01月22日
    浏览(54)
  • 【Python_Selenium学习笔记(一)】Selenium介绍及基本使用方法

    Selenium是一套 Web 网站的程序自动化操作解决方案,广泛应用于自动化测试及爬虫。此篇文章主要介绍 Selenium 的 安装和基本使用流程。 Selenium 框架的安装主要就是安装两样东西: Selenium 客户端库 和 浏览器驱动 。 1.1、Selenium 框架安装 使用 pip 命令安装 pip install selenium ,安装

    2023年04月13日
    浏览(59)
  • 【Python】进阶学习:pandas--read_excel()函数的基本使用

    【Python】进阶学习:pandas–read_excel()函数的基本使用 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和支持~ 💡 创作高质量博文(平均质量分92+),分享更多关于深度学习、

    2024年03月09日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包