我们平常在使用Selenium模拟键盘输入内容,常用的是用send_keys来在输入框上输入字:
基本的输入方式:
input_element= driver.find_element(By.ID, 'searchBox')
input_element.send_keys("我也爱你") #给骚骚的自己发个骚话
不过这种方法,如果完全流畅地把所有内容一下子输完,很容易会被对方网站通过行为识破,感觉普通人也不能一下子就把内容填完,复制粘贴也得要一些时间啦。
(更重要的是:要是给别人表演一下爬虫,一个字一个字地打出来,感觉更酷一点)
所以我在写这部分的时候改进了输入的方式。
想要模拟人在一个字一个字地敲键盘,让输入框一个字一个字得打出来。
逻辑也很简单:
只需要将输入的文字,在for循环下,一个个显示出来就好了,然后在每一次循环间,设置一个短暂的时间睡眠sleep:
text="在文本框里需要传入的信息" #需要替换
interval=0.1
for word in text:
element.send_keys(word)
time.sleep(random.randint(int(interval * 500), int(interval * 1500)) / 1000)
当然这个好方法,也可以打包成def,以后遇到直接调用就可以了,很方便~