当前位置:网站首页>selenium 元素交互
selenium 元素交互
2022-07-04 13:31:00 【不负韶华ღ】
概述
selenium不仅可以操纵浏览器,还可以操纵网页中的元素。selenium对于网页中的元素的操作主要包括点击、输入内容、清除内容、表单提交、下拉框选择五个部分。
点击
element.click()
selenium使用click函数实现元素点击操作,click函数将模拟鼠标在元素中央进行点击,如果元素中央由于某些原因而点击不了,比如元素被遮挡,则返回一个元素中断错误。点击元素操作支持HTML中的任何元素。
from selenium import webdriver
from selenium.webdriver.common.by import By
# 打开Chrome浏览器
driver = webdriver.Chrome()
# 导航至百度首页
driver.get("www.baidu.com")
# 获取首页搜索按钮
driver.find_element(By.ID, "su")
# 点击元素
element.click()
# 关闭浏览器
dirver.quit()
输入内容
element.send_keys()
selenium实现输入元素内容操作的函数是send_keys函数,注意,selenium不仅可以输入文本,而且可以在输入文本的同时也输入按键名称,相当于在键盘中按下对应的键。输入内容操作仅支持内容可编辑元素,比如输入框<input type="text>。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
# 打开Chrome浏览器
driver = webdriver.Chrome()
# 导航至百度首页
driver.get("www.baidu.com")
# 获取输入框
element = driver.find_element(By.ID, "kw")
# 向输入框内输入webdriver文本并按下Enter键
element.send_keys("webdriver" + Keys.ENTER)
# 关闭浏览器
driver.close()
清除内容
element.clear()
既然有输入内容,那么肯定就会有清除内容这一操作。selenium删除元素内容,是通过clear函数实现的。与输入内容操作一致,清除内容操作也仅支持内容可编辑元素。
from selenium import webdriver
from selenium.webdriver.common.by import By
# 打开Chrome浏览器
driver = webdriver.Chrome()
# 导航至百度首页
driver.get("www.baidu.com")
# 获取输入框
element = driver.find_element(By.ID, "kw")
# 向输入框内输入webdriver文本
element.send_keys("webdriver")
# 清空输入框文本
element.clear()
# 关闭浏览器
driver.close()
表单提交
在Selenium 4中,不再通过单独的端点以及脚本执行的方法来实现。因此,建议不要使用此方法,而是单击相应的表单提交按钮。
下拉框选择
select = Select(element)
对于下拉框的操作,当获取到element对象后,基于element对象来创建一个select对象。然后,调用select对象的方法来实现对下拉框的操作。该操作仅支持HTML中的下拉框元素,也就是<select>元素。
1、选择
# 根据索引选择下拉框的某一项
select.select_by_index(index)
# 根据option的value属性选择下拉框的某一项
select.select_by_value(value)
# 根据下拉框选项的文本来选择下拉框的某一项
select.select_by_visible_text(text)
2、取消选择
# 根据索引取消选择
select.deselect_by_index(index)
# 根据value属性取消选择
select.deselect_by_value(value)
# 根据文本取消选择
select.deselect_by_visible_text(text)
# 取消选择所有选中的选项
select.deselect_all()
3、获取所有选中的选项
select.all_selected_options
4、获取所有选中的选项中的第一项
select.first_selected_option
5、获取下拉框的所有项(option元素)
select.options
边栏推荐
- [cloud native] how can I compete with this database?
- leetcode:6109. Number of people who know the secret [definition of DP]
- [information retrieval] link analysis
- es6模块化
- SAIC Maxus officially released its new brand "mifa", and its flagship product mifa 9 was officially unveiled!
- Deep learning 7 transformer series instance segmentation mask2former
- LVGL 8.2 text shadow
- Respect others' behavior
- Preliminary exploration of flask: WSGI
- Implementation of macro instruction of first-order RC low-pass filter in signal processing (easy touch screen)
猜你喜欢
Leecode learning notes - Joseph problem
IO flow: node flow and processing flow are summarized in detail.
Alcohol driving monitoring system based on stm32+ Huawei cloud IOT design
92. (cesium chapter) cesium building layering
LVGL 8.2 LED
IO流:节点流和处理流详细归纳。
The performance of major mainstream programming languages is PK, and the results are unexpected
Transplant tinyplay for imx6q development board QT system
阿里被裁员工,找工作第N天,猎头又传来噩耗...
程序员自曝接私活:10个月时间接了30多个单子,纯收入40万
随机推荐
Digi XBee 3 rf: 4 protocols, 3 packages, 10 major functions
SAIC Maxus officially released its new brand "mifa", and its flagship product mifa 9 was officially unveiled!
flutter 报错 No MediaQuery widget ancestor found.
[local differential privacy and random response code implementation] differential privacy code implementation series (13)
深度学习 神经网络案例(手写数字识别)
First experience of ViewModel
UFO: Microsoft scholars have proposed a unified transformer for visual language representation learning to achieve SOTA performance on multiple multimodal tasks
Stm32f1 and stm32subeide programming example -max7219 drives 8-bit 7-segment nixie tube (based on GPIO)
5G电视难成竞争优势,视频资源成中国广电最后武器
92. (cesium chapter) cesium building layering
[cloud native] how can I compete with this database?
Sqlserver functions, creation and use of stored procedures
ES6 modularization
LVGL 8.2 List
LVGL 8.2 Menu
numpy笔记
Leetcode 1200 minimum absolute difference [sort] the way of leetcode in heroding
PLC Analog input analog conversion FC s_ ITR (CoDeSys platform)
深度学习 神经网络的优化方法
Redis 发布和订阅