首页 > 其他分享 >Selenium查找元素、元素的属性和方法

Selenium查找元素、元素的属性和方法

时间:2023-07-17 11:33:07浏览次数:59  
标签:name text 元素 Selenium element 查找 属性

查找元素

官方文档:https://www.selenium.dev/documentation/webdriver/elements/locators/

一般通过find_element或者find_elements方法获取元素后的类型是WebElement或该类型的列表。

语法:

# 查找第一个符合条件的WebElement元素并返回。
driver.find_element(By类型, "查找的语法")

# 查找符合条件的所有元素,返回的是一个WebElement元素的列表。
driver.find_elements(By类型, "查找的语法")

By类型:

from selenium.webdriver.common.by import By

# 根据id属性查找
ID = "id"
# 使用XPATH语法查找
XPATH = "xpath"
# 根据链接的文本查找
LINK_TEXT = "link text"
# 根据链接的部分文本查找
PARTIAL_LINK_TEXT = "partial link text"
# 根据name属性查找
NAME = "name"
# 根据标签名查找
TAG_NAME = "tag name"
# 根据class属性查找
CLASS_NAME = "class name"
# 使用css选择器语法查找
CSS_SELECTOR = "css selector"

注意:

找到后的元素可以再次使用xpath等方法,因为本身就是一个WebElement对象,原来有什么方法和属性,都可以继续使用!

元素的属性、方法

WebElement的一些属性和方法

# 获取元素的标签名
element.tag_name

# 获取元素的text文本
element.text

# 获取元素的位置信息
element.location

# 获取元素的大小和位置信息
element.rect

# 获取指定的属性或特性,比如可以获取链接的href、或者元素的innerHTML这些隐藏的DOM属性
element.get_attribute(attribute)

# 点击元素
element.click()

# 输入内容或者发送文件(表单的文件上传)
element.send_keys(value)

# 清除文本元素的输入内容(前提是这个元素是一个文本元素input)
element.clear()

# 提交表单
element.submit()

# 元素自身截图,然后保存到指定路径中
element.screenshot(fielname)

# 元素自身截图,然后返回bytes类型(注意,最好传入io.BytesIO(element.screenshot_as_png)来写入文件)
element.screenshot_as_png

# 元素自身截图,但是返回的是base64字符串(html可以base64存图片的,N年前学html也学过)
element.screenshot_as_base64

针对元素截图是非常有用的,遇到一些难爬的,比如字体加密、css加密字体,还要计算什么的,如果嫌麻烦,就直接找到元素后,针对元素自身的大小直接截图,然后丢给OCR识别文字即可!香喷喷!

例子:

element = driver.find_element(By.PARTIAL_LINK_TEXT, "天猫超市")
print(f"{element.text=}")
print(f"{element.tag_name=}")
print(f"{element.location=}")
print(f"{element.rect=}")
print(f"{element.get_attribute('href')=}")
print(f"{element.get_attribute('innerHTML')=}")

element.text='天猫超市'
element.tag_name='a'
element.location={'x': 1175, 'y': 194}
element.rect={'height': 16, 'width': 105, 'x': 1175.479248046875, 'y': 193.6666717529297}
element.get_attribute('href')='https://chaoshi.tmall.com/'
element.get_attribute('innerHTML')='\n                    天猫超市\n                '

标签:name,text,元素,Selenium,element,查找,属性
From: https://www.cnblogs.com/juelian/p/17559571.html

相关文章

  • python利用小列表中元素排序对整个大列表中的小列表进行排序
    一、了解sorted() 函数sorted()函数是Python内置的用于排序可迭代对象的函数,它可以接受多个参数来进行灵活的排序操作。下面是对sorted()函数的参数要求和使用方法的详细说明:参数列表:iterable(必需):表示要进行排序的可迭代对象,例如列表、元组、集合等。key(可选):指定一个函数......
  • 明代元素时装小姐姐【InsCode Stable Diffusion美图活动一期】
    一、StableDiffusion模型在线使用地址:https://inscode.csdn.net/@inscode/Stable-Diffusion二、模型版本及相关配置:模型:chilloutmix_NiPrunedFp32FixLora:hanfu_ming采样迭代步数(steps):40采样方法(Sampler):DPM++2MKarras三、图片提示词与反向提示词:正向提示词:<l......
  • cv::Mat 的 at(int y,int x) 方法可以访问元素
    https://blog.csdn.net/zhi_neng_zhi_fu/article/details/101300864 利用 cv::Mat 的 at(inty,intx) 方法可以访问元素;at 方法被实现成一个模板方法,在调用时必须指定图像元素的类型; ......
  • 二分查找法 的代码实现(JS版)
    递归版本:constBinarySearch=(function(){/***内部二分查找算法*@param{number[]}nums-有序数组*@param{number}l-左端点*@param{number}r-右端点*@param{number}target-目标数值*/constsearch=funct......
  • 数据结构 查找 红黑树查找
    1.红黑树的定义红黑树可以看作是对平衡二叉树的进一步改进。平衡二叉树的一个缺点在于插入和删除操作中为了维持平衡会消耗很大的执行代价,降低效率。红黑树的结构是在平衡二叉树的平衡标准上稍微放宽得到的。红黑树的定义:......
  • 数据结构练习笔记——输出单链表倒数第k个元素
    输出单链表倒数第k个元素【问题描述】已知带头结点的非空单链表中存放着若干整数,请找出该链表中倒数第k个元素。【输入形式】第一行:单链表中元素个数m,第二行:单链表中的m个整数,第三行:k值【输出形式】倒数第k个元素的值(不存在倒数第k个元素输出"no")【样例1】输入:5132450......
  • python怎么查找哪个插件是否安装
    在Python中,我们可以使用pkg_resources模块来查找是否安装了特定的插件。pkg_resources是Python标准库setuptools的一部分,它提供了许多有用的功能,包括查找和管理安装的包。下面是一个示例代码,演示了如何使用pkg_resources模块来查找并验证是否安装了特定的插件:importpkg_resource......
  • HJ27 查找兄弟单词
    1.题目读题HJ27 查找兄弟单词  考查点 2.解法思路 代码逻辑 具体实现 publicclassHJ027{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);String[]str=sc.nextLine().split("\\s+");int......
  • 数据结构 查找 树形查找
    1.二叉排序树二叉排序树可以提高查找、插入和删除的效率。(1)二叉排序树(BST)的定义定义比较简单,左子树所有结点<根节点<右子树所有结点同时左右子树也分别都是二叉排序树特点:对二叉排序树进行中序遍历,可以得到一个递增有序序列。(2)二叉排序树的插入BST的插入是为了其构造而使......
  • 深入浅出WPF——P91把子集集合的元素当Path
    publicpartialclassMainWindow:Window{publicMainWindow(){InitializeComponent();List<Country>countryList=newList<Country>(){newCountry......