python打字代码

一、简介 在在线打字测试(dazi.kukuw.com)网站中,本人kpm一直不高,想着是否能用python写个脚本来改善下, 于是选择用python的Selenium来实现。也对其中遇到一些常见问题进行解决。 二、正文 1)首先,webdriver.Firefox()初始化了一个火狐浏览器的实例

一、简介

在在线打字测试(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

知秋君
上一篇 2024-08-25 15:12
下一篇 2024-08-25 14:48

相关推荐