【Selenium中】——全栈开发——如桃花来

news2025/2/25 22:21:33

目录索引

  • ==查找元素:==
    • 查找方法:
    • 单个元素查找:
    • 多个元素查找:
      • *代码演示:*
  • ==元素交互操作:==
    • 清空文字:
  • ==推荐的变量名定义名称:==
  • ==执行JavaScript :==
    • 滚动页面方法:
      • *滚动到底部:*
      • *滚动到顶部:*
      • *其他:*

查找元素:

核心语法:

find_element()

element中文释义是元素,也就是找元素的意思

查找方法:

这里只说明3.8以后版本的用法

- find_element(By.ID,"id名") 根据id属性来定位
- find_element(By.NAME,"name") 根据name元素来定位
- find_element(By.XPATH,"xpath语法") 根据xpath语法来定位,作者重点推荐这个方法
- find_element(By.TAG_NAME,"标签名") 根据标签名来定位
- find_element(By.CLASS_NAME,"类名") 根据class的名字来定位
- find_element(By.CSS_SELECTOR,"#id") 根据css选择器来定位
- find_element(By.LINK_TEXT,"text") 根据文本属性来定位,这个也比较推荐可以直接根据渲染后的界面直接定位

单个元素查找:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
import time

browser = webdriver.Chrome()
browser.get("https://www.baidu.com/")
#先定位搜索框
text_input1 = browser.find_element(By.XPATH,'//input[@id="kw"]')
text_input1.send_keys("美女")
text_input1.send_keys(Keys.ENTER)
time.sleep(2)
wait = WebDriverWait(browser,10)
wait.until(EC.presence_of_element_located((By.LINK_TEXT,"图片")))
browser.find_element(By.LINK_TEXT,"跳舞").click()
time.sleep(5)
browser.close()

这里要注意一个细节问题,就是名字叫做“图片”的元素跳转前后跳转后的界面都有这个元素,会造成跳转混乱。所以这个time.sleep放的位置就起到了重要的作用,当然你也可以在wait.until里面选取适当的元素,这里主要是故意使用的图片。

多个元素查找:

查找的方式是find_elements()
注意注意,这里多了个s,多个元素查找要加s

代码演示:

find_inputs = browser.find_elements(By.XPATH,"//div/a[@class='c-color-t c-line-clamp1 tags_2yHYj ']")
print(find_inputs)#以列表形式返回数据
#我们要通过循环遍历来提取数据
# find_inputs = browser.find_elements(By.XPATH,"//*[@id='2']/div/div/div[2]/div[1]/div[@class='toplist1-tr_4kE4D']")
print(type(find_inputs))
for i in find_inputs:
    print(i)

呈现效果:
在这里插入图片描述

我们要查找的多元素框框

在这里插入图片描述

元素交互操作:

对获取的元素调用交互方法

清空文字:

"""
比如我在搜索框里输入美女的文字
然后又想把这个文字给删除该怎么做呢
"""

语法:

#text_input和button均为变量名
text_input.clear()#清空输入框
text_input.send_keys()#输入内容也可用于按下按键
browser.find_element()#单个查找元素
browser.find_elements()#多个查找元素
button.click()#单击

更多操作: http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webelement

推荐的变量名定义名称:

  • text_input:用于输入或者按键的变量名
  • button:用于会按下的按键
  • find_input:用于其他寻找的元素

执行JavaScript :

selenium只能操作页面内部的东西,有一些操作必须借助JS实现,比如说实现添加一个页面,比如说下拉滚动条。

滚动页面方法:

先记住两个即可:滚动到底部、滚动到顶部

execute_script()

execute中文释义:执行
script中文释义:脚本;剧本

滚动到底部:

window.scrollTo(0,document.body.scrollHeight)

滚动到顶部:

window.scrollTO(0,0)

其他:

说明:
window:js的window对象
scrollTo:window的方法,可以滚到页面的任何位置
scrollHeight:是dom元素的通用属性,document.body.scrollHeight会返回body元素的高度,基本上就是页面的高度
scrollLeft:获取位于对象左边界和窗口目前可见内容的最左端之间的距离
scrollTop:获取位于对象最顶端和窗口中课件内容的最顶端之间的距离
scrollWidth:获取对象滚动的宽度

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NetCore发布到Docker-局域网

1.说明: 1) 目标,NetCore 项目通过Jenkins发布到局域网的服务器上 2) 单机版的请参考 https://mp.csdn.net/mp_blog/creation/editor/130619862 2.安装插件 Publish Over SSH 1) Dashboard -> Manage Jenkins -> 插件管 2) 安装完之后 2.添加SSH服务器 1) …

【重磅分享】免梯子GPT,教你玩转GPT正确姿势

火了一周的 ChatGPT,xd 不允许还有小伙伴不知道这个东西是什么?简单来说就是,你可以让它扮演任何事物,据说已经有人用它开始了颜色文学创作。因为它太火了,所以,本周特推在几十个带有“chatgpt”的项目中选…

VOC标签格式转yolo格式并划分训练集和测试集

目录 一、了解VOC数据格式 1、Annotations目录 2. JPEGImages目录 二、YOLO格式 三、VOC标签格式转yolo格式并划分训练集和测试集 一、了解VOC数据格式 Pascal VOC数据集下载地址:The PASCAL Visual Object Classes Homepage 介绍一下VOC 数据集下载后的目录结构…

Vue(动画、过渡、动画库)

一、动画 1.使用场景 在插入、更新或者移除DOM元素时候,在合适的时候给元素添加样式类型。 2. 使用 首先在组件style创建出现和离开的动画 然后对动画进行处理(命名注意是v-enter-action和v-leave-action) 如果name命名在默认标签中使用之后…

Redis高可用系列——ZSet类型底层详解

文章目录 概述skiplistredis的skiplist 概述 Redis 中的 zset 是一种有序集合类型,它可以存储不重复的字符串元素,并且给每个元素赋予一个排序权重值(score)。Redis 通过权重值来为集合中的元素进行从小到大的排序。zset 的成员是…

一、H3C-NE实验-Telnet实验

实验环境: 1. 在电脑搜索栏,搜“程序”,确保Telnet服务开启 2. 防火墙处于关闭状态 实验工具:H3C Cloud Lab、SecureCRT 实验拓扑: 实验步骤: 1. 登录路由器,配置路由器相关信息,…

【容器化】Docker 使用Ⅰ

【容器化】Docker 使用Ⅰ Docker Hello World运行交互式的容器启动容器(后台模式)停止容器Docker 的使用获取镜像启动容器后台运行停止一个容器进入容器导出和导入容器删除容器运行一个 web 应用查看 WEB 应用容器网络端口的快捷方式查看 WEB 应用程序日…

618前夕,淘宝天猫大变革,探索电商天花板之上的价值

2023年淘宝天猫618商家大会,恰逢淘宝20周年,也是阿里“16N”组织架构改革,淘宝天猫“独立”经营后,管理和运营团队的首次亮相。除了淘宝天猫618的具体策略,最受关注的,还有淘宝天猫的大变革——涉及淘宝天猫…

JavaScript实现贪吃蛇小游戏(网页单机版)

文章目录 项目地址项目介绍游戏开始游戏暂停游戏模式游戏死亡重新开始 结尾 今天使用 JavaScript 实现了一个网页版的贪吃蛇小游戏。 项目地址 Github: https://github.com/herenpeng/snakeGitee: https://gitee.com/herenpeng/snake 项目介绍 游戏开始 使用浏览器打开 sn…

【历史上的今天】4 月 21 日:微处理器先驱诞生;Winamp 发布;COPPA 正式生效

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 4 月 21 日,在 2006 年的今天,数码资讯网站 IT168 CEO 确认公司已经收购技术社区 ITPUB。宋刚则表示,收购 ITPUB 将有助于 …

C++string类的模拟实现

string类的模拟实现 1.string构造函数的实现问题2.浅拷贝3.深拷贝4.写时拷贝(只做了解)5.string类的模拟实现 1.string构造函数的实现问题 【问题1】 【问题2】没有显示定义拷贝构造函数,使用编译器默认生成拷贝构造函数 显示定义&#x…

git: fatal: detected dubious ownership

原因及解决: 当一个 仓库被与当前用户不同的用户克隆时,就会发生这种情况。我是在重新安装 Windows 后遇到了这个问题,但使用了以前克隆的 git 存储库(在单独的分区上) 右键单击 仓库文件夹,属性&#xf…

DNSPod十问周康:如何成为办公硬件领域的乔布斯?

本期嘉宾 周康 成者科技 CEO 周康,成者科技CEO、首席产品官。2013年创办成者科技,通过AI和互联网技术,推动办公设备智能化。担任CEO期间,带领成者科技攻克书籍扫描技术,融入大量的AI视觉技术,优化扫描质量…

芒果YOLO专栏的YOLOv8的Baseline改进:打造更方便版本NEW YOLOv8

关于芒果YOLO改进专栏的YOLOv5和YOLOv8的改进 - YOLOAir3解析 本篇文章作为一个Baseline改进解析篇 优势在于:改起来更加方便 文章目录 第一种改进方式第二种改进方式使用方式网络配置训练其他使用关于官方YOLOv8的改进方式:由于YOLOv5作者 发布的 YOLOv8,是使用的全新架构…

微服务分布式事务处理

当我们向微服务架构迁移时,如何处理好分布式事务是必须考虑的问题。这篇文章介绍了分布式事务处理的两种方案,可以结合实际采用合适的解决方案。原文:Handling Distributed Transactions in the Microservice world[1] 如今每个人&#xff08…

图片投票小程序微信投票软件发起投票软件互动酷投票

现在来说,公司、企业、学校更多的想借助短视频推广自己。 通过微信投票小程序,网友们就可以通过手机拍视频上传视频参加活动,而短视频微信投票评选活动既可以给用户发挥的空间激发参与的热情,又可以让商家和企业实现推广的目的&am…

Linux指令 热键

热键 上一次我们说到了linux的基本指令,这次我们先说一下热键 TAB TAB键在linux中有什么作用呢?? 在Linux中,假设我们想要输入的指令忘记了,我们可以TAB两下,帮我们补全命令或者假如命令太多&#xff0…

openfeign源码解析

概括 Feign是Netflix开发的声明式、模板化的HTTP客户端,其灵感来自Retrofit、JAXRS-2.0以及WebSocket。 Feign可帮助我们更加便捷、优雅地调用HTTP API。 Feign支持多种注解,例如Feign自带的注解或者JAX-RS注解等。Spring Cloud openfeign对Feign进行了 …

QT软件开发: 获取CPU序列号、硬盘序列号、主板序列号 (采用wmic命令)

[TOC](QT软件开发: 获取CPU序列号、硬盘序列号、主板序列号 (采用wmic命令)) [1] QT软件开发: 获取CPU序列号、硬盘序列号、主板序列号 (采用wmic命令) https://blog.51cto.com/xiaohaiwa/5380259 一、环境介绍 QT版本: 5.12.6 环境: win10 64位 编译器: MinGW 32 二、功…

陷入“营销迷城”的小仙炖,需要回归消费行业本质

消费行业往往受经济周期波动影响较小,因此被认为是一条长坡赛道。近年来,随着消费者收入水平提高,消费市场也出现了诸多以社交、休闲、健康等为目的的新消费形式,如饮料领域的元气森林、江小白,生鲜零售赛道的锅圈食汇…