用python实现打字练习网站第一

2023-11-10

一、简介

在线打字测试(dazi.kukuw.com)网站中,本人kpm一直不高,想着是否能用python写个脚本来改善下,

于是选择用python的Selenium来实现。也对其中遇到一些常见问题进行解决。

二、正文

1)首先,webdriver.Firefox()初始化了一个火狐浏览器的实例

from time import sleep
from selenium import  webdriver
from selenium.webdriver.firefox.webdriver import Service
from selenium.webdriver.common.by import  By
from selenium.webdriver.common.keys import Keys






s = Service("D:\\Python\\geckodriver.exe")
driver = webdriver.Firefox(service=s)

1这里的路径指向的是firefox的驱动,不是firefox浏览器本身,不然无法对firefox进行操作

2)打开网址

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

3)用html元素操作开始操作按钮

 

driver.find_element(by=By.NAME,value='start_button').click()

4)再通过xpath路径找到文本框并输入原文

 

for c in range(60):
     text = driver.find_element(by=By.ID, value=f'i_{c}').text
     driver.find_element(by=By.XPATH,value='''//*[@id="i_'''+str(c)+'''"]/input[2]''').send_keys(text,Keys.SPACE)
     sleep(3)

1刚开始采用了如下的xpath,发现每行文本框xpath都一样,于是找父节点

//input[@class='typing']

2页面中需要通过空格换行,所以加了Keys.SPACE

3刚开始没加sleep()导致每次只能循环两次,就卡住

简陋的完整代码

from time import sleep
from selenium import  webdriver
from selenium.webdriver.firefox.webdriver import Service
from selenium.webdriver.common.by import  By
from selenium.webdriver.common.keys import Keys



s = Service("D:\\Python\\geckodriver.exe")
driver = webdriver.Firefox(service=s)
driver.maximize_window()
driver.get('https://dazi.kukuw.com/')
driver.find_element(by=By.NAME,value='start_button').click()
for c in range(60):
     text = driver.find_element(by=By.ID, value=f'i_{c}').text
     driver.find_element(by=By.XPATH,value='''//*[@id="i_'''+str(c)+'''"]/input[2]''').send_keys(text,Keys.SPACE)
     sleep(3)

如果需要让作弊不太明显可以,适当的调用sleep()或者退格key.space

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用python实现打字练习网站第一 的相关文章

随机推荐

  • 成为Qt开发大牛,从入门到精通,一步一步走完整个学习路线!

    简介 本文为 C QT 学习路线大纲 资料 文章底部 Qt 可以做什么 Qt 虽然经常被当做一个 GUI 库 用来开发图形界面应用程序 但这并不是 Qt 的全部 Qt 除了可以绘制漂亮的界面 包括控件 布局 交互 还包含很多其它功能 比如多
  • 盘点一下不到100行的给力代码

    作者 景略集智 https jizhi im blog post short and excellent code 只需10行Python代码 我们就能实现计算机视觉中目标检测 from imageai Detection import O
  • qt 创建第二个ui_QT多个ui文件使用

    在使用QT做应用程序的时候几乎都会用到比较多的对话框 下面内容讲解下如何使用多个ui文件进行设计 注 下面使用的是Ubuntu16 04下的QT5 首先先建立一个工程 编译后结果如下 上面只有一个按钮 现在我们新建一个ui 然后点击该按钮来
  • 直方图-绘制子图subplot imshow

    显示好几幅图片在一个窗口内 逗号可以省略 其实imshow这个函数前两篇博客中已经开始使用了 与matlab中的使用很相似 下面介绍一下 若要显示灰度图片 参数为 cam plt cm gray 若要显示彩色图片 opencv 读入的图片默
  • Docker CE 学习笔记2 : Docker 安装后的步骤

    目录 1 以非 root 用户管理 Docker 2 配置Docker 在系统启动时运行 3 使用不同的存储引擎 4 配置Docker守护进程侦听连接的位置 4 1 配置远程访问使用systemd单元文件 参考 https docs doc
  • .net core 连接Mysql

    1 安装依赖包 在这里插入图片描述 https img blog csdnimg cn 16e74e954c414688b26af8b9d92fd793 png x oss process image watermark type d3F5
  • python -range()

    range 函数 range 101 可以用来产生0到100范围的整数 需要注意的是取不到101 range 1 101 可以用来产生1到100范围的整数 相当于前面是闭区间后面是开区间 range 1 101 2 可以用来产生1到100的
  • 时间卷积网络TCN:CNN也可以处理时序数据并且比LSTM更好

    本文回顾了 Shaojie Bai J Zico Kolter 和 Vladlen Koltun 撰写的论文 An Empirical Evaluation of Generic Convolutional and Recurrent Ne
  • top命令详解

    Top命令查看的内容 第一行是任务队列信息 06 29 43 当前时间 up 4 12系统运行时间 2 users当前登录用户数 load average 0 00 0 00 0 00系统负载 即任务队列的平均长度 第二行 为进程信息 Ta
  • linux部署tomcat项目详细教程(安装linux到部署tomcat)

    近来想要研究下linux 所以就搭了个linux系统来配置服务器玩玩 这里分了个目录 如果已经安装好虚拟机或者linux系统的小伙伴可以直接跳过前面的安装介绍 直接看部署 文章目录 一 总步骤说明 二 安装虚拟机 三 创建linux系统 四
  • DQL基础查询

    一 基础查询 1 语法 select 查询列表 from 表名 select后面跟的查询列表 可以有多个部分组成 中间用逗号隔开 例如 select 字段1 字段2 表达式 from 表 2 特点 查询的结果集是一个虚拟表 3 执行顺序 f
  • 循环神经网络RNN论文解读

    版权声明 本文为CSDN博主 了不起的赵队 的原创文章 遵循CC 4 0 by sa版权协议 转载请附上原文出处链接及本声明 原文链接 https blog csdn net zhaojc1995 article details 80572
  • Linux网络和安全:配置、远程访问与防御指南

    文章目录 Linux 网络和安全 引言 网络配置 IP地址配置 配置网络接口 防火墙设置 安全性加强 Linux网络配置及端口管理 网络配置命令 端口管理 防火墙和安全性设置 防火墙管理工具 安全性设置 Linux远程访问技术 SSH和VP
  • leetcode Path Sum

    Definition for a binary tree node struct TreeNode int val TreeNode left TreeNode right TreeNode int x val x left NULL ri
  • 基于B/S的网上零食销售系统的设计与实现(附:源码 论文 Sql文件)

    摘要 本文介绍了网上零食销售系统的整个开发过程 采用国内认准的B2C商城建站系统模式 并按照现有的购物系统的现状而设计开发的网络买卖平台 本文主要阐述的了整个系统的完成过程 模拟了一个具备卖家 买家和管理员的网络交易系统 而本平台对不同的用
  • 若依打包上线前后端配置

    1 后台访问打包设置 vue config js 文件中需要修改代理地址 devServer host 0 0 0 0 host 188 188 188 64 port port open true proxy detail https c
  • STM32进入STOP模式并唤醒实验总结

    项目需求 需要实现设备低功耗功能 实现过程中遇到几个问题 以此记录总结 stm32f103ret6 问题一 执行PWR EnterSTOPMode PWR Regulator LowPower PWR STOPEntry WFI 后 程序继
  • 进程间通信:比较脸熟的ftok()

    老师在讲这个函数时没有什么感觉 当我做了试验后 其实也没有什么感觉 就是当我在改进实验的时候 问题就来了 就在ftok 这出的的错误 不过先不去了解它的作用来先说说为什么要用它 共享内存 消息队列 信号量它们三个都是找一个中间介质 来进行通
  • OpenSSL:调用OpenSSL实现SHA算法

    安装 libssl dev sudo apt get install libssl dev example c include
  • 用python实现打字练习网站第一

    一 简介 在在线打字测试 dazi kukuw com 网站中 本人kpm一直不高 想着是否能用python写个脚本来改善下 于是选择用python的Selenium来实现 也对其中遇到一些常见问题进行解决 二 正文 1 首先 webdri