查看原文
其他

Selenium教程06:单选框+多选框+下拉框组件的示例练习

作者一小红牛 我的Python教程 2024-01-14


Python,速成心法

敲代码,查资料,问度娘

练习,探索,总结,优化

★★★★★博文创作不易,我的博文不需要打赏,也不需要知识付费,可以白嫖学习编程小技巧。使用代码的过程中,如有疑问的地方,欢迎大家指正留言交流。喜欢的老铁可以多多点赞+收藏分享+置顶,小红牛在此表示感谢。★★★★★

今天给大家分享一下,网页组件的模拟操作,分享之前,首先建议大家收藏一下,下面的3个组件的网址,这里面有各种网页组件。方便你自己在学习Selenium的时候,好边学边练习各个组件的Selenium代码。

http://sahitest.com/demo/

http://iviewui.com/view-ui-plus/component/form/radio

https://element.eleme.cn/#/zh-CN/component/installation

Python爬虫教程30:Selenium网页元素,定位的8种方法!

Selenium自动化教程02:浏览器options配置及常用的操作方法

Selenium自动化教程04:鼠标+键盘网页的模拟操作

Selenium教程05:使用webdriver-manager自动下载浏览器驱动,再也不用担心driver版本的问题了

1.Radio单选框的示例用法,通过网页元素class和type属性多条件共同定位元素,模拟依次选中Android,Apple,Windows。

网页元素结构

<input type="radio" class="ivu-radio-input" name="ivuRadioGroup_1703863097829_0">

实现代码:单选比较好操作,先定位需要单选的某个元素,然后点击一下即可。

# @Author : 小红牛# 微信公众号:WdPythonfrom time import sleepfrom selenium import webdriverfrom selenium.webdriver.common.by import By
driver = webdriver.Chrome()driver.maximize_window()driver.get('https://www.iviewui.com/view-ui-plus/component/form/radio')# 定位radio元素位置radio_btns = driver.find_elements(By.XPATH, '//input[@class="ivu-radio-input" and @type="radio"]')# 1.选中Androidradio_btns[2].click()sleep(2)# 2.选中Appleradio_btns[1].click()sleep(2)# 3.选中Windowsradio_btns[3].click()sleep(3)driver.quit()

写法2:也可以根据网页元素中的span标签定位,<span>Android</span>

driver.find_element(By.XPATH, '//span[text()="Android"]').click()sleep(2)driver.find_element(By.XPATH, '//span[text()="Windows"]').click()sleep(3)

2.Checkbox多选框的示例用法 

网页元素结构

<span class="ivu-checkbox-label-text">西瓜</span>

实现代码:多选好像也比较容易,依次定位需要选择的元素,点击即可。

from time import sleepfrom selenium import webdriverfrom selenium.webdriver.common.by import By
driver = webdriver.Chrome()driver.maximize_window()driver.get('https://www.iviewui.com/view-ui-plus/component/form/checkbox')# 定位元素driver.find_element(By.XPATH, '//span[text()="Snapchat"]').click()sleep(2)driver.find_element(By.XPATH, '//span[text()="香蕉"]').click()sleep(2)driver.find_element(By.XPATH, '//span[text()="西瓜"]').click()sleep(3)driver.quit()
3.Select下拉框的操作相对复杂一些,需要用到Select模块。
from selenium.webdriver.support.select import Select

3.1.三种选择方法

select_by_index()     # 通过索引选择,注意:index索引是从“0”开始。

select_by_value()     # 通过value值选择,value标签的属性值。

select_by_visible_text()    # 通过文本值,即显示在下拉框的值。

3.2.三种返回options信息的方法

options  # 返回select元素所有的options

all_selected_options   # 返回select元素中所有已选中的选项

first_selected_options   # 返回select元素中选中的第一个选项           

3.3.四种取消选中项的方法

deselect_all   # 取消全部的已选择项

deselect_by_index   # 取消已选中的索引项

deselect_by_value   # 取消已选中的value值

deselect_by_visible_text  # 取消已选中的文本值

3.4.下拉框的示例用法

网页元素结构:
<select id="s1"><option value="-1">--SELECT--</option><option value="46">Business Phone</option><option value="47">Cell Phone</option><option value="48">Email</option><option value="49">Fax</option><option value="51">Home Phone</option><option value="50">Mail</option></select>
实现代码:
# @Author : 小红牛# 微信公众号:WdPythonfrom time import sleepfrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.select import Select
driver = webdriver.Chrome()driver.maximize_window()driver.get('https://sahitest.com/demo/selectTest.htm')
# 创建Select对象select = Select(driver.find_element(By.ID, 's1'))# 打印所有的options元素all_options = select.optionsfor i in all_options: print(i.text)# --SELECT--Business PhoneCell Phone Email Fax Home PhoneMailprint(select.first_selected_option.text) # --SELECT--# 根据索引选择select.select_by_index(1)sleep(2)# 根据value值选择select.select_by_value('49')sleep(2)# 根据文本值选择select.select_by_visible_text('Email')sleep(2)driver.quit()
3.5.下拉框取消选中,首先你要再Python新建一个html页面,复制如下源码,命名为123.html即可。要想有取消选中的效果,网页源码中必须有multiple属性,不然运行代码就无法执行取消选中。

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>诗人列表</title></head><body><select id = "S1" multiple = "multiple"><option>请选择:</option><option value="100">李白</option><option value="101">杜甫</option><option value="102">李清照</option></select></body></html>
执行代码看选中和取消选中的效果。
# @Author : 小红牛# 微信公众号:WdPythonfrom time import sleepfrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.select import Select
driver = webdriver.Chrome()driver.maximize_window()# html的位置driver.get(r'file://D:/Wdpython/爬虫/123.html')select = Select(driver.find_element(By.ID, "S1"))# 1.先选中select.select_by_index(1)sleep(2)# 2.取消选中select.deselect_by_index(1)sleep(2)select.select_by_value('101')sleep(2)select.deselect_by_value('101')sleep(2)select.select_by_visible_text('李清照')sleep(2)select.deselect_by_visible_text('李清照')sleep(3)select.deselect_all()sleep(5)driver.quit()

完毕!!感谢您的收看

----------★★历史博文集合★★----------

Python入门篇  进阶篇  视频教程  Py安装

py项目  Python模块  Python爬虫   Json  

Xpath   正则表达式   Selenium  Etree  Css

Gui程序开发   Tkinter   Pyqt5  列表元组字典

数据可视化   matplotlib   词云图   Pyecharts

海龟画图   Pandas   Bug处理   电脑小知识

office自动化办公   编程工具   NumPy

继续滑动看下一个

Selenium教程06:单选框+多选框+下拉框组件的示例练习

作者一小红牛 我的Python教程
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存