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

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

目录索引

  • ==查找元素:==
    • 查找方法:
    • 单个元素查找:
    • 多个元素查找:
      • *代码演示:*
  • ==元素交互操作:==
    • 清空文字:
  • ==推荐的变量名定义名称:==
  • ==执行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 timebrowser = 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.lryc.cn/news/66956.html

相关文章:

  • Sarsa增强版之Sarsa-λ依然走迷宫
  • 生成 Cypher 能力:MOSS VS ChatGLM
  • 数据库的键和存储
  • 基于AT89C51单片机的并入串出乘法口诀的设计与仿真
  • 人生在世皆有过错,来一起看看Java中的异常吧!!!
  • linux 测试连接网络和端口 telnet
  • 一文快速入门体验 Hibernate
  • 【RabbitMQ】SpringAMQP
  • 错题汇总08
  • 使用urllib库简单入门
  • C++学习 Day11
  • python中函数与类 类中的方法-静态方法/动态方法
  • 基于trace_id实现ForkJoinPool的链路追踪
  • Qt推流程序(视频文件/视频流/摄像头/桌面转成流媒体rtmp+hls+webrtc)可在网页和播放器远程观看
  • ChatGPT入门到高级【第一章】
  • 云原生应用架构
  • rem、px、em的区别 -前端
  • 分享几款小白从零开始学习的会用到的工具/网站
  • 第八章 文件处理命令
  • LVS 负载均衡群集的 NAT 模式和 DR 模式
  • 自学自动化测试,第一份工作就18K,因为掌握了这些技术
  • C++ 类的继承与派生
  • 分布式系统基础理论
  • HttpServletRequestWrapper的使用与原理
  • PBDB Data Service:List of fossil occurrences(化石产出记录列表)
  • 初识C语言
  • Leetcode 322. 零钱兑换(完全背包)
  • 怎么恢复回收站?分享4个宝藏方法!
  • 大模型混战,最先实现“智慧涌现”的会是谁?
  • Powerlink协议在嵌入式linux上的移植和主从站通信(电脑和linux板通信实验)