从零开始Web自动化(三):通过selenium,9行代码实现打字网站的自动打字

news/2024/5/13 12:08:29/文章来源:https://quniao.blog.csdn.net/article/details/118797938

写在前面:
这个专栏主要是分享一些python、Web自动化的相关知识。
需要你具备一定的python基础,参考教程:廖雪峰python教程
掌握红框中的内容即可!
在这里插入图片描述
通过实战项目让你学会包括:python、selenium、测试报告、监听、特殊元素的定位方式的处理以及自动化框架的搭建,
最后更高效的企业级自动化测试方法(零代码,图形化Web自动化)的分享。

一、实现效果:
在这里插入图片描述
看着很厉害的样子,实际实现起来非常简单!!!

二、源码

from selenium import webdriver
from selenium.webdriver.common.by import Bybrowser = webdriver.Chrome()  # 启动浏览器
browser.get('https://dazi.kukuw.com/')  # 打开网站
browser.find_element(By.XPATH, '//*[@id="form"]/ul[6]/li[2]/input').click()  # 点击开始测试按钮
for i in range(0, 60):x_v = browser.find_element(By.XPATH, '''//*[@id="i_''' + str(i) + '''"]/div/span''').text + ' 'for j in x_v:browser.find_element(By.XPATH, '''//*[@id="i_''' + str(i) + '''"]/input[2]''').send_keys(j)

三、具体分析

browser = webdriver.Chrome()

1.第一行代码用于启动chrome浏览器,它可以携带很多参数,但我们常用的就两种:
一种是chromedriver的路径:

browser = webdriver.Chrome("E:\ChromDriver\chromedriver.exe")

第二种是携带一些启动设置,比如:隐藏浏览器界面启动chrome

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless') # 隐藏浏览器运行
driver = webdriver.Chrome(options=chrome_options)

当然,如果你想启动其他浏览器的话,例如:火狐,代码就需要这样写:

browser = webdriver.Firefox()

2.第二行代码的意思就是访问一个网址:

browser.get('https://dazi.kukuw.com/')

3.第三行代码:通过xpath定位方式定位一个元素,对它执行点击操作:

browser.find_element(By.XPATH, '//*[@id="form"]/ul[6]/li[2]/input').click()  # 点击开始测试按钮

定位方式除了Xpath还有其他的,比如:id、css选择器、name等。
但我们不需要过于的花时间去学习它们,了解就够了,因为在工作中没谁会关心你用什么定位。
那如何进行快捷简便的定位呢?
我们可以利用工具:
chrome浏览器自带了定位方式的获取工具,按下F12(右键鼠标,点击"检查")也可以,按图中的步骤操作就可以获取到需要操作的元素地址
在这里插入图片描述
当然会出现工具获取的定位地址,代码跑起来还是定位的不到的情况,
这个就需要自己根据实际情况切换定位方式或者自写xpath代码才能解决这个问题了,庆幸的是,这类的元素比较少。我在工作中遇到的就是页面搜索栏的下拉菜单有多个,但它们是继承的同一个组件,导致xpath定位只能定位到第一个被打开的下拉菜单,这个时候就需要自己写xpath定位元素来解决这个问题。
当时写的代码:xpath('//div[contains(@class,"a") and contains(@class,"b")]') //它会取class同时有a和b的元素
selenium对元素的操作有很多种:包括图中使用的click(点击)、send_keys()输入内容、clear(清空内容)等。
这些也不需要刻意的去记,写多了自然就熟悉了
4.下面代码块的意思:循环遍历,获取第1行需要打字的内容,然后再循环遍历需要打字的内容,一个个的打出来

for i in range(0, 60):x_v = browser.find_element(By.XPATH, '''//*[@id="i_''' + str(i) + '''"]/div/span''').text + ' 'for j in x_v:browser.find_element(By.XPATH, '''//*[@id="i_''' + str(i) + '''"]/input[2]''').send_keys(j)

通过chrome的定位工具可以获取到要输入元素的地址
在这里插入图片描述
第一行元素地址:

//*[@id="i_0"]/div/span

第二行元素地址:

//*[@id="i_1"]/div/span

第三行元素地址:

//*[@id="i_2"]/div/span

发现了每增加一行,数字会+1,这就找到规律了!
所以就可以写一个循环来获取每行的需打字内容的数据

for i in range(0, 60):x_v = browser.find_element(By.XPATH, '''//*[@id="i_''' + str(i) + '''"]/div/span''').text + ' '#加空格字符串是因为按空格才会换行print('第%d行数据:' % i, x_v)
-------------------------输出信息------------------------------0行数据: Once upon a time a little girl tried to make a living by selling matches in the 
第1行数据: street. It was New Year's Eve and the snowed streets were deserted. From brightly 
第2行数据: lit windows came the tinkle of laughter and the sound of singing. People were 
第3行数据: getting ready to bring in the new year. But the poor little match seller sat 
第4行数据: sadly beside the fountain. Her ragged dress and worn shawl did not keep out the 
第5行数据: cold and she tried to keep her bare feet from touching the frozen ground. She 

这样的话,我们只需要在获取到每行数据的时候,进行send_keys就行了

    for j in x_v:browser.find_element(By.XPATH, '''//*[@id="i_''' + str(i) + '''"]/input[2]''').send_keys(j)

这样就实现了自动打字的功能!
四、被检测到作弊了
在这里插入图片描述
下一遍文章会讲解如何过检测以及python方法的的封装,让你的代码更可读

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_717714.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零开始Web自动化(四):如何过打字网站的作弊检测,从而实现排行榜第一

一、分析和解决思路 上篇博文中,我们的程序被检测出作弊了,那如何过检测呢? 思路: 我们打的太快了,完全超出了人类的极限。 而且也不可能一直都是一个速度,也不可能每个字母都打正确。 那我们要让程序打的…

网站url过滤不严格造成下载任意文件漏洞

年底了很忙,最近一直在处理安全问题,其中有一例比较有代表性,于是想拿出来说说。大概是这样的,网站在某个目录下提供pdf文档下载,但是出现了安全问题,通过对路径和文件名的修改,指定下载linux系…

优化网站设计(二十三):减小Cookie的体积

前言 网站设计的优化是一个很大的话题,有一些通用的原则,也有针对不同开发平台的一些建议。这方面的研究一直没有停止过,我在不同的场合也分享过这样的话题。 作为通用的原则,雅虎的工程师团队曾经给出过35个最佳实践。这个列表请参考 Best Practices fo…

29.保姆级教程带你做一个属于自己的博客网站

功能介绍: 页面功能主页index.html展示添加博客和博客列表的文字,实现页面跳转添加页add.html输入文章标题及内容,并将内容提交到数据库中列表页list.html将数据库中所有博客展示到前端页面中,点击文章可以查看文章的详情,附带编辑和删除的功能详情页detail.html显示文章的…

全球最值得模仿的500个网站(扫描版pdf)

有空看看,可能会来灵感!下载地址:(格式:pdf|大小:44.4MB)http://down.51cto.com/data/1103656转载于:https://blog.51cto.com/xuqin/1378226

Struts2漏洞拉响网站安全红色警报以及把Struts2更新为最新版本Struts2.3.15.1步骤

360网站安全检测平台今日发布红色警报称,广泛应用在国内大型网站系统的Struts2框架正在遭到黑客猛烈攻击。利用Struts2“命令执行漏洞”,黑客可轻易获得网站服务器ROOT权限、执行任意命令,从而窃取重要数据或篡改网页,目前国内至少…

eclipse怎么卸载_田柯:网站数据库怎么建?

今天,来说说,网站数据库怎么建?不废话,上干货!1 新建数据库表F:Websitewitiso23noteswwu.mdb(按上述字段)。2 新建网页F:Websitewitiso23notes admin.asp(连接数据库的asp代码(ADO连…

VS2005开发WAP网站初识

准备 首先要选一款WAP浏览器,在这方面就看用户习惯了。我选的是M3Gate,它对WML标签标准要求比较严格,支持WMLScript。有关模拟器请Googlewap模拟器。 开发步骤 1.通过"文件"-"新建网站"-"ASP…

如何利用机器学习和Gatsby.js创建假新闻网站

我们对错误消息并不陌生。假新闻和假标题并不是现代发明。甚至早在20世纪初就有了黄色新闻,它只是使用各种道德上有问题的策略来吸引人们购买报纸和其他媒体形式的注意力。在没有报纸订阅的情况下,公司必须为每一笔销售而战,而当你最好的营销…

大型网站架构演化

2019独角兽企业重金招聘Python工程师标准>>> 《大型网站技术架构》读书笔记: 1.1大型网站软件系统的特点 与传统企业应用系统相比,大型互联网应用系统有以下特点。 高并发,大流量 高可用 海量数据 用户分布广泛,网络情…

配置ISA Server以创建站点到站点××× 连接

在本练习中,您将在两个 ISAServer 阵列之间测试和使用站点到站点 连接。注意:本实验室练习使用以下计算 机:Denver - Florence - Berlin - Istanbul 本次实验的目的,是启使用前两个步骤所建立的站点到站点连接的配置在 Florence …

网站备份解决方案实战操作讲解(学生分享)

说明:建议博友先观看:人人都是讲师的教学培训体系介绍http://oldboy.blog.51cto.com/2561410/1111405人人都是讲师-学生分享-网站架构备份解决方案实现讲解(陶同学分享讲解) 1)实战考试题描述 2)实战考试逻…

网站导航颜色停留_如何才能打造用户体验好的网站

做网站那么多年,需求不断的变化,功能在变,技术在变,不变的就是客户都是喜欢高端大气上档次的网站。既要网站简单明了,也要网站大气美观。网站访问速度要快,打开就知道网站做什么的,这样用户体验…

6个必看的Android网站

摘要: 当今世界,几乎所有的电子产品都可以在网上找到相关信息。不管是官方主页、粉丝站点或者是论坛帖子集合,你总可以在线上某个地方找到它。Android 设备也是如此—事实上,在许多方面一台 Android 设备要依赖于这个网 ...当今世界&#xff…

生日快乐网站_华晨宇30岁生日快乐:曾经“异类”,如今顶尖!

【作者 / 乐评人:青烟岭】2月7日,歌手华晨宇30岁的生日,也是新一季《歌手》节目的开播日。《歌手2020》今日开播1月初,湖南卫视官宣新一季节目参赛阵容,最后一位公布的华晨宇,受到观众极大的欢迎。可以预知…

如何选择合适的网站程序

如何选择合适的网站程序 对于大多数的新手站长,如果要自己建一个网站,一般都是从网上下载一些现成的网站程序代码。可是,这些新手对于选择哪种CMS程序往往比较困惑,不知道哪个好用一些。现在,我们就来说说如何选取合适…

JAVA教育网站前后端_20天SpringBoot+SpringCloud前后端分离的大型在线教育实战项目...

本套线教育平台采用B2C商业模式,使用前后端分离开发方式。项目包含后台管理系统和前台用户系统,两个系统中分别包含后端接口部分和前端页面部分。系统后端接口部分,使用目前流行的SpringBootSpringCloud进行微服务架构,使用Feign、…

Sharepoint学习笔记---如何在Sharepoint2010网站中整合Crystal Report水晶报表(报表登录处理)...

- 在Sharepoint中加载水晶报表时我们常会遇到跳出水晶报表的登录界面,并且有时我们加载的报表可能会使用不同的数据库联接,而我们又需要在同一界面上对不同的报表进行处理。 一、为去掉这个登录界面并实现统一处理不同数据库联接的报表,我们写…

服务器网站安全管理办法,云服务器安全管理办法

云服务器安全管理办法 内容精选换一换客户在华为云购买产品后,如果没有及时的进行续费或充值,将进入宽限期。如宽限期满仍未续费或充值,将进入保留期。在保留期内资源将停止服务。保留期满仍未续费或充值,存储在云服务中的数据将被…

发现“钓鱼网站”的一些思路

发现“钓鱼网站”的一些思路JackZhai背景:钓鱼网站是那些模仿社交、银行、电商等网站,用于骗取用户账户名与密码的“套牌网站”。人们在访问网站时,其URL显示在地址栏中,但URL相似时(可以显示虚假URL),人们常常忽视&am…