当前位置: 首页 > news >正文

Python selenium库学习使用实操二

系列文章目录

Python selenium库学习使用实操


文章目录

  • 系列文章目录
  • 前言
  • 一、模拟登录
  • 二、表单录入


前言

在上一篇文章中,我们完成Selenium环境的搭建,和简单的自动化。今天继续深入学习。今天的目标是完成模拟登录,和表单录入。


一、模拟登录

如下图,我们采用密码登录的方式,需要将账号、密码自动填入表单中,然后点击登录。

在这里插入图片描述
这里采用xpath的方式获取元素,XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。

element = driver.find_element("xpath", "//*[@placeholder='账号/手机号']")
element.send_keys("18900000000")
time.sleep(1)
element = driver.find_element("xpath", "//*[@placeholder='请输入登录密码']")
element.send_keys("123456")

在这里插入图片描述

二、表单录入

有如下一张表单在这里插入图片描述
容易看出商品名称和货号是两个文本输入框,容易得到元素并写入

            # 商品名称spuName = driver.find_element("xpath","//*[@placeholder='商品名称不少于2个字,建议使用:品牌+属性+产品']",)# 货号searchCode = driver.find_element("xpath", "//*[@placeholder='请输入货号']")

但是其他几个下拉框就比较困难了。查了下网上的教程如下:

selenium操作页面下拉框,一般来说分为两种情况,一种是标准的select标签下拉框;另一种是非select类下拉框,比如ul-li标签下拉框。针对select标签的下拉框,selenium提供了一个select类;针对非select标签实现的下拉框,可以通过模拟鼠标点击的方式实现操作。
1、select标签下拉框
如下图所示,下拉框为select标签,此时可以使用select类提供的三种方法定位到下拉框中的元素。
在这里插入图片描述
2、非select标签下拉框
针对非select标签的下拉框,按照常规手工操作的步骤,一步一步找到元素,点击操作。在这里插入图片描述

目前暂未验证是否可行,国庆之后再接着学习吧

相关文章:

Python selenium库学习使用实操二

系列文章目录 Python selenium库学习使用实操 文章目录 系列文章目录前言一、模拟登录二、表单录入 前言 在上一篇文章中,我们完成Selenium环境的搭建,和简单的自动化。今天继续深入学习。今天的目标是完成模拟登录,和表单录入。 一、模拟登…...

基于Hive和Hadoop的电信流量分析系统

本项目是一个基于大数据技术的电信流量分析系统,旨在为用户提供全面的通信数据和深入的流量使用分析。系统采用 Hadoop 平台进行大规模数据存储和处理,利用 MapReduce 进行数据分析和处理,通过 Sqoop 实现数据的导入导出,以 Spark…...

访问docker容器中服务的接口,报错提示net::ERR_CONNECTION_REFUSED

背景 使用httpclient和前端调用docker容器中部署的springboot服务接口,一直连接不上。 报错信息 AxiosError {message: Network Error, name: AxiosError, code: ERR_NETWORK, config: {…}, request: XMLHttpRequest, …} sys.ts:28 POST http://172.33.28.179:8181/sy…...

【mysql相关总结】

mysql相关总结 数据库小的表,全表扫描效率更高,不用建索引。 索引的类型 1.普通索引:基本的索引,没有任何约束限制 2.唯一索引:类似普通索引,有唯一约束性 3.主键索引:特殊的唯一索引,不允许有空值 4.组合索引&#xf…...

uniapp 微信小程序 微信支付

本章的内容我尽量描述的细致一些,哪里看不懂给我评论就可以,我看到进行回复 微信支付大致分为4步,具体看后端设计 1. 获取code 2. 根据code获取openid 3. 根据openid,以及部分订单相关数据,生成prepayId (预支付交易会…...

CSS 效果:实现动态展示双箭头

最近写了一段 CSS 样式,虽然不难,但实现过程比较繁琐。这个效果结合了两个箭头,一个突出,一个内缩,非常适合用于步骤导航或选项卡切换等场景。样式不仅仅是静态的,还可以通过点击 click 或者 hover 事件&am…...

Linux 创建开发用的账户

在Linux系统中,创建一个用于开发的用户账户通常涉及到添加用户、设置密码以及配置适当的权限和环境。这里将详细介绍如何在Linux系统中创建一个新的开发用户账户,包括为其配置sudo权限,使其能够执行需要管理员权限的命令。 步骤 1: 创建用户…...

检查一个CentOS服务器的配置的常用命令

在CentOS系统中,查看服务器配置的常用命令非常丰富,这些命令可以帮助用户快速了解服务器的硬件信息、系统状态以及网络配置等。以下是一些常用的命令及其简要说明: 1. 查看CPU信息 (1) cat /proc/cpuinfo:显示CPU的详细信息&…...

Redis 简单的消息队列

使用redis 进行简单的队列很容易,不需要使用较为复杂的MQ队列,直接使用redis 进行,不过唯一不足的需要自己构造生产者消费者,这里使用while True的方法进行消费者操作 目录 介绍数据类型StringHash 重要命令消息队列 介绍 key-v…...

C++:继承和多态,自定义封装栈,队列

1.栈: stack.cpp #include "stack.h"Stack::Stack():top(nullptr),len(0){} //析构函数 Stack::~Stack() {while(!empty()){pop();} }bool Stack::empty() //判断栈是否为空 {return topnullptr; }int Stack::size()//获取栈的大小 {return len; } //压…...

Python多个set中的交集

Python多个set中的交集 在 Python 中,集合(set)是一种非常有用的数据结构,它可以存储唯一的元素,并提供了高效的数学集合操作,包括求交集、并集和差集等。本文将重点介绍如何通过多重集合求交集&#xff0…...

百度百科 X-Bk-Token 算法还原

声明 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请私信我立即删除! 文章目录 声明案例地址参数分析X-Bk-Token算法追踪X-Bk-Token后缀算法还原c 值跟踪与算法还原往期逆向文章推荐最近太忙了,博客摆烂了好…...

RUST语言的初印象-从一个模拟登陆谈起-slint+reqwest+aes

本文就一个做了三四天的小程序讲第一次学用RUST的感受,内附代码。 了角语言 从一些渠道听说了R,这个字母挺魔性,那个文章说C和R的团体已经上升到了宗教崇拜的高度,然后,我觉得必 有过人之处,大约10年没碰…...

HBase批量写入优化

HBase批量写入性能优化 对于HBase的批量写入性能优化,可以考虑以下几点: 1.批量写入操作:使用HBasef的批量写入操作可以显著提高性能。将多个写入操作放在一个批次中一起提交。这样可以减少网络通信开销和减少多次写入操作的开销。方法不限。…...

江协科技STM32学习- P19 TIM编码器接口

🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​…...

文件上传、重定向、Gin路由

文件上传 单个文件上传 index.html 文件上传前端页面代码&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><title>index</title> </head> <body> <form action"/upload" method"post"…...

躺平成长:微信小程序运营日记第二天

在进行属于生活的开源之后&#xff0c;自己更加感受到自己存在的渺茫&#xff0c;同时更加开始深刻领会&#xff0c;开源的重要性&#xff0c;在开源&#xff0c;开放&#xff0c;创造&#xff0c;再创新的思维模式下&#xff0c;不发布八部金刚功相关的训练视频&#xff0c;自…...

三分钟速览:Node.js 版本差异与关键特性解析

Node.js 是一个广泛使用的 JavaScript 运行时环境&#xff0c;允许开发者在服务器端运行 JavaScript 代码。随着技术的发展&#xff0c;Node.js 不断推出新版本&#xff0c;引入新特性和改进。了解不同版本之间的差异对于开发者来说至关重要。以下是一个快速指南&#xff0c;帮…...

git创建新分支

git创建新分支 1.先在gitLab上New branch. 2.本地右键git小乌 - /切换/检出-创建新分支&#xff0c;分支名称和上一步创建的一样。 最后记得改个文件提交下&#xff0c;看看gitLab上是否提交成功。...

Chip-seq数据分析处理流程

一、处理过程 要处理 SRR14879780 的 ChIP-seq 数据并进行基序分析&#xff08;包括比对到参考基因组 hg38.fasta 和峰值调用&#xff09;&#xff0c;你可以按照以下步骤操作&#xff0c;并使用相应的代码。每个步骤会涉及一些常用的生物信息学工具&#xff0c;如 FastQC、Tr…...

spring boot3.2.x与spring boot2.7.x对比

Spring Boot 3.2.x 相比 Spring Boot 2.7.x 带来了许多重要的变化、新特性以及性能改进。这些新功能不仅提升了开发者的效率&#xff0c;还优化了应用的性能和安全性。以下是两者的主要差异、优势以及使用说明&#xff1a; 1. JDK 17 支持 Spring Boot 2.7.x 支持 JDK 8 至 J…...

Vue2(十三):路由

一、路由的简介 vue-rooter&#xff1a;是vue的一个插件库&#xff0c;专门用来实现SPA应用 1.对SPA应用的理解 1、单页 Web 应用&#xff08;single page web application&#xff0c;SPA&#xff09;。 2、整个应用只有一个完整的页面 index.html。 3、点击页面中的导航链…...

Java并发:互斥锁,读写锁,公平锁,Condition,StampedLock

阅读本文之前可以看一看 Java 多线程基础&#xff1a; Java&#xff1a;多线程&#xff08;进程线程&#xff0c;线程状态&#xff0c;创建线程&#xff0c;线程操作&#xff09; Java&#xff1a;多线程&#xff08;同步死锁&#xff0c;锁&原子变量&#xff0c;线程通信&…...

在 Linux 中,要让某一个线程或进程排他性地独占一个 CPU

文章目录 1. CPU 亲和性(CPU Affinity)2. 中断隔离(IRQ Isolation)3. 系统 tickless 模式(NoHZ Mode)4. 实时调度策略5. CPU 隔离(CPU Isolation)和 Full CPU Isolation实现最低的延迟抖动在 Linux 中,要让某一个线程 排他性地独占一个 CPU,并且进一步隔离中断(包括…...

滚雪球学MySQL[7.3讲]:数据库日志与审计详解:从错误日志到审计日志的配置与使用

全文目录&#xff1a; 前言7.3 日志与审计1. 日志类型与配置1.1 错误日志&#xff08;Error Log&#xff09;配置错误日志使用场景案例演示 1.2 慢查询日志&#xff08;Slow Query Log&#xff09;配置慢查询日志使用场景案例演示 1.3 查询日志&#xff08;General Query Log&a…...

网关的作用及其高可用性设计详解

引言 在现代分布式系统架构中&#xff0c;网关&#xff08;Gateway&#xff09;是一个关键组件。它作为客户端与后端服务之间的桥梁&#xff0c;不仅提供了请求路由、负载均衡、安全认证、流量控制等功能&#xff0c;还能够保护后端服务的安全和稳定性。网关的设计和高可用性对…...

Vortex GPGPU的github流程跑通与功能模块波形探索

文章目录 前言一、跟着官方文档走一遍二、cache子模块的波形仿真2.1 必要的文件内容解释2.2 cache子模块波形仿真——目前环境没啥问题了&#xff0c;就vcd因为配置问题出不来 总结 前言 看了那么久的verilog代码和文档&#xff0c;但还是没怎么接触过Vortex GPGPU全流程跑通与…...

10.2 Linux_并发_进程相关函数

创建子进程 函数声明如下&#xff1a; pid_t fork(void); 返回值&#xff1a;失败返回-1&#xff0c;成功返回两次&#xff0c;子进程获得0(系统分配)&#xff0c;父进程获得子进程的pid 注意&#xff1a;fork创建子进程&#xff0c;实际上就是将父进程复制一遍作为子进程&…...

【深度学习基础模型】玻尔兹曼机BM|受限玻尔兹曼机RBM|深度置信网络DBN详细理解并附实现代码。

【深度学习基础模型】玻尔兹曼机Boltzmann machines (BM)|受限玻尔兹曼机Restricted Boltzmann machines (RBM)|深度置信网络Deep belief networks (DBN)详细理解并附实现代码。 【深度学习基础模型】玻尔兹曼机Boltzmann machines (BM)|受限玻尔兹曼机Restricted Boltzmann m…...

滑动窗口->dd爱框框

1.题目&#xff1a; 2.题解&#xff1a; 2.1为什么用滑动窗口优化&#xff1a; 因为元素都是大于0的 所以&#xff1a;当找到大于等于x的值时&#xff0c;right可以不用返回 两个指针都往后走&#xff1b;因此可以使用滑动窗口优化暴力解法 2.2&#xff1a;滑动窗口具体使用步…...

网站建设与管理专业找暑假工/邯郸seo排名

两个虚拟机产品Sun VirtualBox 和 VMware Workstation&#xff0c;两家公司Sun Microsystems, Inc.&#xff08;被Oracle收购&#xff09;和VMware, Inc.&#xff0c;两种模式开源和商业。 由于新买了电脑&#xff0c;cpu支持vt-x&#xff08;intel的硬件支持虚拟化加速&#x…...

工地用木模板尺寸/seo科技网

说明&#xff1a; 本文的作者Eric Raymond是Open Source Software领域的领袖&#xff0c;这方面许多 新的思想正是从他那儿产生的&#xff0c;同时他也是UNIX上最流行的Email软件Fetchmail 的作者。 下面这篇文章有点儿长&#xff0c;然而它是值得你去耐心把它读完的。文章以Fe…...

网站底部分享怎么做/建站公司网站源码

1. 父页面获取子页面对象 $("#id_iframe").contents().find("#id_button_test"); 2. 子页面获取父页面对象 var $iframe $(".parentId", parent.document);//对应的javascript版本为:var iframe window.parent.document.getElementById("…...

郑州网站制作天强科技/站长之家 seo查询

转自&#xff1a;MongoDB常用28条查询语句 1、查询所有记录 db.userInfo.find(); 相当于&#xff1a; select* from userInfo; 默认每页显示20条记录&#xff0c;当显示不下的情况下&#xff0c;可以用it迭代命令查询下一页数据。注意&#xff1a;键入it命令不能带“&#xff1…...

四川省营山县西城建筑公司网站/定制型营销网站建设

要计算列上的唯一值&#xff0c;您需要使用关键字DISTINCT。要了解它是如何完成的&#xff0c;让我们创建一个表。创建表的查询如下-mysql> create table UniqueCountByIPAddress-> (-> Id int NOT NULL AUTO_INCREMENT,-> UserHits int,-> UserIPAddress varch…...

网页版梦幻西游谛听怎么获得/杭州网络排名优化

使用的环境&#xff1a;Xcode V8.3.3 学习OpenGL的过程中&#xff0c;会使用到gltools,glew,glfw3,glut等库文件&#xff0c;glut包Mac自带&#xff0c;故不需要考虑。主要考虑的是另三个包文件怎样安装&#xff0c;配置。本文主要讲两大部分&#xff1a; 1. glew&#xff0c;…...