selenium:WebElement类的核心操作方法(3)

图片

     当我们通过webdriver中的find_element函数定位到元素后,其实返回的是WebElement对象,而该对象有很多重要的方法,比如输入文本,点击按钮,获取属性,截屏等

WebElement类的方法介绍

文本输入与清除

send_keys()

在元素上模拟按键输入,通常用于向输入框中填充文本。

clear()

清除元素的输入内容,如清空一个文本输入框。

点击操作

click()

单击元素,可以是按钮、链接等可点击的元素。

submit()

提交表单,也可以使用click()方法,但submit()方法专门用于表单的提交。

元素属性与状态获取

get_attribute(element_name)

获取元素的属性值,如id、name、type等。

is_selected()

判断元素是否被选中,常用于单选框、复选框等。

is_displayed()

判断元素是否可见,返回一个布尔值。

is_enabled()

判断元素是否可启用,例如,某些按钮在特定条件下可能不可点击。

获取元素尺寸与位置

size

返回元素的尺寸,通常包含宽度和高度。

location

返回元素在页面上的位置,通常是元素的左上角坐标。

获取元素信息

text

获取元素的文本内容,如获取一个段落或链接的文本。

tag_name

获取元素的tag信息。

截屏

screenshot(filename)

将当前元素截屏保存为png图片

screenshot_as_base64

将当前元素截屏保存为base64编码的字符串

screenshot_as_png

将当前元素截屏保存为base64字符串,然后解码为2进制字节码

以上函数位于如下webelement.WebElement类中:

示例:打开百度输入文本后点击搜索(输入框操作)

我们以获取元素的id举例,先上代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
# 创建Safari浏览器的WebDriver实例
driver = webdriver.Safari()
# 打开一个网页
driver.get("https://www.baidu.com")
#最大化网页
driver.maximize_window()
#查找id=kw的元素位置,对应于搜索输入框,找到后我们输入字符python
driver.find_element(By.ID,'kw').send_keys('python')
##查找id=su的元素位置,对应于‘百度一下’的按钮,找到后我们点击按钮
driver.find_element(By.ID,'su').click()
# 等待几秒
sleep(5)
# 关闭浏览器
driver.quit()

代码执行后,网页自动打开并搜索如下:

图片

示例:打开百度输入用户名和密码进行登录(表单操作)

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
driver = webdriver.Safari()
# 打开一个网页
driver.get("https://www.baidu.com")
driver.maximize_window()
sleep(1)
#点击登录
driver.find_element(By.ID,'s-top-loginbtn').click()
sleep(1)
#输入用户名
driver.find_element(By.ID,'TANGRAM__PSP_11__userName').send_keys('*****')
sleep(1)
#输入密码
driver.find_element(By.ID,'TANGRAM__PSP_11__password').send_keys('*****')
sleep(1)
#点击同意
driver.find_element(By.ID,'TANGRAM__PSP_11__isAgree').click()
sleep(1)
#点击提交
driver.find_element(By.ID,'TANGRAM__PSP_11__submit').submit()

程序执行后会自动输入用户和密码,点击登录

示例:获取元素后将元素截屏

我们获取元素后,使用函数screenshot将元素截屏,参数filename传入完整的png文件名路径或者文件名(放在当前路径)

图片

测试代码:打开头条网站,定位到左上角的‘下载头条app’然后截屏保存。

from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Safari()
#打开传入的URL网页地址
driver.get("https://www.toutiao.com/")
sleep(6)
element = driver.find_element(By.XPATH,'//*[@id="root"]/div/div[3]/div[1]/div')
element.screenshot('1.png')
element.screenshot('/Users/aaa/Donwloads/1.png')

执行后打开截图如下:

示例:获取元素的text/ta gtag_name信息

图片

from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Safari()
#打开传入的URL网页地址
driver.get("https://www.toutiao.com/")

定位到左上角的‘下载头条app’元素,并打印元素的信息

element = driver.find_element(By.XPATH,'//*[@id="root"]/div/div[3]/div[1]/div')
#打印该元素的一些信息
print(element.tag_name)
print(element.text)

执行结果:
DIV
下载头条APP扫码下载今日头条

示例:获取元素的属性值

通过get_attribute函数,传入参数比如id,class,xpath等信息,返回对应的值。

from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Safari()
#打开传入的URL网页地址
driver.get("https://www.toutiao.com/")
#定位到左上角的‘下载头条app’然后截屏保存。
element = driver.find_element(By.XPATH,'//*[@id="root"]/div/div[3]/div[1]/div')
#打印该元素的属性值
print(element.get_attribute('class'))

执行结果:

download-app-wrapper

共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”

-----指水滴不断地滴,可以滴穿石头;

-----比喻坚持不懈,集细微的力量也能成就难能的功劳。

----感谢读者的阅读和学习,谢谢大家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值