大型情感剧集Selenium:4_老中医教你(单/多/下拉框)选项定位

大型情感剧集Selenium:4_老中医教你(单/多/下拉框)选项定位 #华为云·寻找黑马程序员# 又要开篇叨叨 昨天没有更新,但因为下大雨没撸串,陪孩子玩了下前一天写的Flask开发猜数字小游戏—聪明的奥特曼,发现代码有些bug,进行了修改,另外只是名字叫聪明的奥特曼,我的俩爷不买账啊,没办法,将成功的alert改为展示奥特曼的图片,才把他俩打发。至于做对?别逗了,我都改成猜1-4了都各种错,就急着点完了看奥特曼,真是气死我了… 今天讲什么 讲什么标题说了,讲selenium的单选、多选、下拉... 阅读详情
又要开篇叨叨

昨天没有更新,但因为下大雨没撸串,陪孩子玩了下前一天写的Flask开发猜数字小游戏---聪明的奥特曼,发现代码有些bug,进行了修改,另外只是名字叫聪明的奥特曼,我的俩爷不买账啊,没办法,将成功的alert改为展示奥特曼的图片,才把他俩打发。至于做对?别逗了,我都改成猜1-4了都各种错,就急着点完了看奥特曼,真是气死我了.....

今天讲什么

讲什么标题说了,讲selenium的单选、多选、下拉框选项定位。但其实这东西,没什么太多说的,又比较枯燥,那该怎么让这一集selenium的课程变得有趣呢?有请老中医,哈哈....


5847426-dbfbf333ddb5f18c.gif
老中医.gif

怎么样,这个野广告做的还不错吧,你们给多少分?至于为什么要自己写一个html的页面,一是懒得找什么网页又有下来框体,又有单/多选。二是最近更多的想练习写一些web界面,最重要的是怕大家觉得selenium系列的文章没意思,所以搞点噱头呗。哈哈....
页面实现起来比较简单,样式用Bootstrap即可,至于这个城中村经典广告牌,只要简单的使用jQuery添加和删除css样式就OK了。
代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>老中医</title>
    <link href="https://cdn.bootcss.com/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
    <style type="text/css">
    body {
        height: 500px;
    }

    .container {
        max-width: 500px;
        height: 450px;
        border: 2px solid grey;
        border-radius: 5px;
    }

    .ad {
        text-align: center;
        font-size: 25px;
        background-color: black;
        color: red;
        margin-bottom: 20px;
    }

    .chuibi {
        display: inline-block;
    }

    .adplus {
        color: black;
    }

    .footer {
        text-align: center;
    }
    </style>
</head>

<body>
    <form class="container">
        <div class="row">
            <div class="ad ">祖传男科老中医
                <div class="small chuibi"> 【华佗在世,扁鹊转生】
                </div>
            </div>
        </div>
        <div class="form-group ">
            <div class="input-group">
                <div class="input-group-addon">
                    姓名:
                </div>
                <input id='name' class="form-control" />
            </div>
        </div>
        <div class="form-group ">
            <div class="input-group">
                <div class="input-group-addon">
                    性别:
                </div>

                <select id="sex" class="form-control">
                    <option value="女">女</option>
                    <option value="男">男</option>
                </select>
            </div>
        </div>
        <div class="form-group has-success">
            <div><label class="control-label">如何了解我院:</label></div>
            <label class="radio-inline">
                <input type="radio" name="access" id="inlineRadio2" value="朋友介绍"> 朋友介绍
            </label>
            <label class="radio-inline">
                <input type="radio" name="access" id="inlineRadio1" value="野广告">野广告
            </label>
        </div>
        <div class="form-group has-error">
            <div><label class="control-label">有哪些病症:</label></div>
            <div class="checkbox">
                <label>
                    <input type="checkbox" value="全身乏力">
                    全身乏力
                </label>
            </div>
            <div class="checkbox ">
                <label>
                    <input type="checkbox" value="食欲不振">
                    食欲不振
                </label>
            </div>
            <div class="checkbox ">
                <label>
                    <input type="checkbox" value="腰膝酸软">
                    腰膝酸软
                </label>
            </div>
            <div class="checkbox ">
                <label>
                    <input type="checkbox" value="失眠多梦">
                    失眠多梦
                </label>
            </div>
        </div>
        <div class="form-group">
            <div><label class="control-label">简要描述你的病情:</label></div>
            <input id='summary' class="form-control" type="text">
        </div>

    </form>
    <div class="footer">
        ©2019-清风Python:<a href="https://www.jianshu.com/u/d23fd5012bed">联系我们</a>
    </div>
    <script>
    setInterval(function() {
        var title = $('.ad')
        if (title.hasClass('adplus')) {
            title.removeClass('adplus')
        } else { $('.ad').addClass('adplus') }
    }, 600);
    </script>
</body>

</html>
入主题

先来说说下拉框吧,网上很多的帖子说下拉框的选择必须要先定位到下拉框体,然后点击框体,才能获取选项并选中,其实不然。90%的下拉框都会提前将option内容保存在html中,只有极少情况时通过AJAX请求的(这种情况之后的课程说....)。所以针对这种选项类的使用,推荐使用xpath和css_selector去定位。因为可变概率较小....
至于单选和多选,主要是通过driver.find_elements_by_tag_name('input'),然后进行批量循环判断input选项完成选择。
说了这么多,不如直接看代码来的直观:

# -*- coding: utf-8 -*-
# @Author   : 王翔
# @JianShu  : 清风Python
# @Date     : 2019/6/22 22:04
# @Software : PyCharm
# @version  :Python 3.7.3
# @File     : Day_3.1_select.py

from selenium import webdriver
import time

# 本地文件,根据你们的位置,自行修改
URL = 'file:///D:/Codes_Repository/Python/SeleniumTest/Day4_selenium定位下拉框/index.html'

options = webdriver.ChromeOptions()
# 调整窗口大小,主要是为了使减小gif文件大小,方便截图上传
options.add_argument('window-size=650,650')
options.add_argument('disable-infobars')
driver = webdriver.Chrome(options=options)

driver.get(URL)

driver.find_element_by_id('name').send_keys("隔壁老王")
time.sleep(1)

sex = driver.find_element_by_id('sex')
sex.find_element_by_css_selector("[value='男']").click()
# driver.find_element_by_xpath('//*[@id="sex"]/option[2]').click()
time.sleep(1)

input_tags = driver.find_elements_by_tag_name('input')
for input_tag in input_tags:
    if input_tag.get_attribute('type') == 'radio' and input_tag.get_attribute('value') == '野广告':
        input_tag.click()
time.sleep(1)

input_tags = driver.find_elements_by_tag_name('input')
for input_tag in input_tags:
    if input_tag.get_attribute('type') == 'checkbox' and input_tag.get_attribute('value') != '腰膝酸软':
        input_tag.click()
time.sleep(2)

driver.close()

看下隔壁老王前来就诊的效果:


5847426-c5a5dd146b7bddef.gif
隔壁老王来就诊.gif

由于页面只有一组单选和多选,所以无需多做判断,但如果网页上存在多组的单选和多选。那还需要针对他们自身的特性进行分析,知识是死的,要学会灵活运用才行....

To Be Continue

今天的内容就到这里,如果觉得有帮助,欢迎将文章或者我的公众号【清风Python】分享给更多喜欢python的人

产业园区如何高效对接企业技术需求与高校科研成果?.docx 科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。 立即下载

相关推荐

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

chrome浏览器的options参数

1. 背景 在使用selenium浏览器渲染技术,爬取网站信息时,默认情况下就是一个普通的纯净的chrome浏览器,而我们平时在使用浏览器时,经常就添加一些插件,扩展,代理之类的应用。相对应的,当我们用chrome浏览器爬取网站时,可能需要对这个chrome做一些特殊的配置,以满足爬虫的行为。 常用的行为有: 禁止图片和视频的加载:提升网页加载速度。 添加代理:用于翻墙访问某些页面,或者应对IP访问频率限制的反爬技术。 使用移动头:访问移动端的站点,一般这种站点的反爬技术比较薄弱。 添加扩展:像正常使用浏览

定格空间 7214

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

Jquery 找指定div下的radio 加bind事件 select 选中一用 $("#Sex").find("option[data-id='0']").prop("selected"!!!!

//页面加载时处理的事情 $(document).ready(function () { //1.匿名策略数组,给select动态追加option选项 let EncryTypeList = [{ id: 1, text: "前n位后隐藏" }, { id: 2, text: "后n位后隐藏" }]; EncryTypeList.ma...

火龙果的专栏 959

华为防火墙双线路配置实战:5分钟搞定主备自动切换(含健康检查避坑指南)

本文详细介绍了华为防火墙双线路配置实战,包括主备自动切换和健康检查机制的优化技巧。通过智能健康检查机制,华为防火墙能实现毫秒级故障自动切换,确保网络高可用性。文章提供了从架构设计到实战配置的全流程指南,并分享了常见配置误区与解决方案,帮助中小企业快速搭建稳定可靠的网络架构。

weixin_30872337的博客 605

【Fluent】太阳辐射模型—Solar Ray Tracing

一、引言Fluent提供了一个太阳能负载模型,可用于计算进入计算域的太阳光线的辐射效应。该模型可以分为:太阳光线追踪和太阳辐照。其中太阳辐照需要使用DO或MC模型,直接向辐射模型提供外光束方向和强度参数。太阳光线追踪不限制辐射模型,可以独立于辐射方程使用,甚至可以在辐射模型off的情况下使用。本文主要介绍太阳光线追踪模型。该模型非常适用于以下领域汽车气候控制 (ACC) 应用建筑物中的人体热舒适建模应用该模型使用着色算法进行太阳光线追踪。光线会透过半透明的面加载在照射面上。

a5567899的博客 7588

「前端早读君008」新手必踩坑之display: inline-block

今日励志语 往日不可追,来日犹可期,祝大家2019年继往开来 迷之间隙 我们创建一个导航列表,并将其列表 item 设置为 inline-block,主要代码如下: <div class="nav"> <div class="nav-item"><a>我</a></div> ...

weixin_34416754的博客 346

RK3568—基于GM8775C的MIPI转双通道LVDS屏幕调试

Rockchip RK3568 原生显示接口不支持双通道LVDS屏幕的数据输出,因此需要借助显示转换芯片才能实现双通道LVDS屏幕的驱动。本文介绍使用GM8775C芯片方案,在 RK3568 平台实现单路 MIPI DSI 信号输出来驱动双通道LVDS显示屏。 关于GM8775C GM8775C 型 DSI 转双通道 LVDS 发送器产品主要实现将 MIPI DSI 转单/双通道 LVDS功能,MIPI 支持 1/2/3/4 通道可选,每通道最高支持 1Gbps 速率,最大支持 4Gbps 速率。LV.

Industio_优快云的博客 1万+

selenium+Python笔记

查看页面的源代码,在Selenium中有driver.page_source 这个方法得到

qq_42198470的博客 205

OpenCV透视变换原理与实战:从单应性矩阵到文档矫正

透视变换是计算机视觉中实现平面图像几何校正的基础技术,其核心在于利用单应性矩阵(Homography)建模三维空间到二维图像的射影关系。不同于仿射变换的线性约束,透视变换通过有理函数映射支持任意凸四边形间的非线性变形,天然适配真实场景中的远小近大、平行线汇聚等透视现象。该技术具备确定性强、计算高效、无需训练数据等工程优势,广泛应用于文档扫描矫正、车牌识别预处理、AR贴图对齐及无人机正射影像生成等场景。结合OpenCV的cv2.findHomography与cv2.warpPerspective接口,开发者可

weixin_30873847的博客 654

别白忙活!EAAI投稿避坑指南:5条红线碰就拒,工程应用重点划重点

EAAI投稿避坑指南:5条红线与工程应用要点 投稿《Engineering Applications of Artificial Intelligence》(EAAI)需特别注意5条红线,否则直接拒稿:1)避免提出新隐喻元启发式算法,应聚焦具体工程应用;2)摘要须明确区分AI贡献与工程应用;3)标题和摘要禁止使用未定义缩写;4)必须采用单栏格式;5)关键词不能包含缩写。此外,论文需突出AI方法在工程实践中的创新与落地价值,建议补充实际工程数据、部署成本分析和与传统方法的对比。投稿前务必逐项核查这5条要求,以

ZhangJiqun&191cm&85kg 3212

CSS+DIV让文字内容居中___display:inline、block、inline-block的区别

[code="HTML"] Untitled Document vertical-align:middle; } --> teststsetsetsetdisplay:inline-block; [/code] [b]display:block就是将元素显示为块级元素. [/b]   block元...

jzgl_cadn的专栏 508

【毕业设计】基于雷达与深度学习的摔倒检测——雷达数据集处理

雷达原始数据是时域非平稳信号,快速傅里叶变换(Fast Fourier Transformation, FFT)不能很好地提取微多普勒效应的模式特征。因此短时傅里叶变换(Short Time Fourier Transformation, STFT)被应用于雷达信号的时频谱分析。本文主要介绍雷达数据集的预处理过程,包括时频谱图的中值滤波与 SVD 分解。

洋洋Young的博客 1808

大型情感剧集Selenium:4_老中医教你(单/多/下拉框)选项定位 #华为云·寻找黑马程序员#

今天讲什么 讲什么标题说了,讲selenium的单选、多选、下拉框选项定位。但其实这东西,没什么太多说的,又比较枯燥,那该怎么让这一集selenium的课程变得有趣呢?有请老中医,哈哈… 怎么样,这个野广告做的还不错吧,你们给多少分?至于为什么要自己写一个html的页面,一是懒得找什么网页又有下来框体,又有单/多选。二是最近更多的想练习写一些web界面,最重要的是怕大家觉得selenium系列的...

华为云官方博客 3580

阿里云 Docker 镜像加速收费后:这些免费替代方案值得收藏

阿里云Docker镜像加速服务收费后,国内开发者急需免费替代方案。本文推荐2025年仍可用的7个免费镜像源,包括轩辕镜像、DaoCloud、网易云等,并提供多源配置方案以提高稳定性。建议开发者在CI/CD环境中配置多个镜像源,避免构建失败。文章还提供了详细的配置步骤和使用建议,适合个人和团队开发者参考。

sg_knight的专栏 1930

让 ABAP 开发者也能做出高质量 SAP Fiori:到底需要掌握多少前端知识?

文章摘要: 随着SAP技术演进,ABAP开发者的角色边界正在重构。传统SAP GUI时代的全栈开发模式逐渐转向RAP+Fiori Elements的新范式,其中关键技术变化包括: 开发模式转变:从前后端耦合转向RAP模型驱动开发,通过CDS注解实现UI意图表达 分工优化:Fiori Elements模板处理80%标准UI需求,Flexible Programming Model解决20%差异化需求 效率提升:注解驱动开发可在RAP建模阶段同步定义UI结构,大幅缩短交付周期 工具整合:SAP提供从建模到部署的

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 349

大型情感剧集Selenium:4_老中医教你(单/多/下拉框)选项定位 #华为云·寻找黑马程序员#...

欢迎添加华为云小助手微信(微信号:HWCloud002或HWCloud003),输入关键字“加群”,加入华为云线上技术讨论群;输入关键字“最新活动”,获取华为云最新特惠促销。华为云诸多技术大咖、特惠活动等你来撩! 今天讲什么 讲什么标题说了,讲selenium的单选、多选、下拉框选项定位。但其实这东...

zhy_Learn的博客 64

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

CSS中样式 display 属性 inline,block及inline-block

div 元素默认display属性为block 为块状元素,无论div中文字字数,总以块状显示,即占满浏览器宽度。 测试测试 sss 而span元素默认display属性为inline,只占据span中所占字数的宽度。 测试测试 测试测试 inline-block sfffs sfffs inli

z69183787的专栏 1万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Selenium Webdriver2.0 处理upload file

昨个改程序遇到一个问题,UI上面有需要上传文件的地方。但是我不知道怎么让Selenium完成 点击上传文件按钮->在弹出的文件选择窗口中选择路径和文件,点确定。 要知道弹出窗口属于window的范畴,Selenium只能处理Web page. Jeremy原先的代码用的是Selenium RC中的 type “filepath+filename”方法。可不知咋搞的反正运行到这里是进行不下去

星辰海閣 4283

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

关于layuiadmin使用

一 关于表格的渲染 就拿user用户管理为例 渲染数据的方法 这里用01做说明 首先在页面部分找到如下代码 此部分的数据由js中 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200424095554346.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text...

weixin_41865469的博客 3291

Selenium 定位不到元素(新手求指教)

本人用Selenium WebDriver(java)做自动化测试遇到无法定位元素问题源代码如下:&lt;div class="ant-modal-content"&gt;    &lt;div class="ant-modal-header"&gt;        &lt;div class="ant-modal-title" id="rcDialogTitle0"&gt;路人&

test_Selenium的博客 1285

layui之table操作点击编辑,使用layer.open回显值

var index = layer.open({ title: '编辑用户', type: 2, shade: 0.2, maxmin: true, sha...

牛马日常踩坑记录 3599

在layui的弹出层数据调用

在使用“编辑”按钮时,要使用弹出层,并且要将当前所选项的值传递给弹出子页面。 父层: function editUser(edit){ var index = layui.layer.open({ title : "编辑用户", type : 2, content : "uIAction_page_user_userEdit",//弹出层页面 area: ['500px', '560px'], success : fun

灿烂星空和猫 608

layui radio性别单选框赋值

layui radio性别单选框赋值 今天在写代码的时候发现radio性别单选框赋值与普通的输入框的赋值是不一样,下面简单做一下笔记。 &lt;td&gt;性别&lt;/td&gt; &lt;td &gt; &lt;input type="radio" name="epSex" class="epSex" value="男" ti

qq_37889727的博客 4992
上一篇: Flask开发猜数字小游戏---聪明的奥特曼
下一篇: 大型情感剧集Selenium:5_alert窗口与iframe框架定位
清风Python
博客等级 码龄7年 406粉丝 267原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值