虫师的Selenium Webdriver(Python)第三版27.3同名章节中说,在文件中读取用户名密码需要指定读取的长度,且无法循环读取。自己测试过程中却没遇到这样的问题,循环读取也是可以实现的,只是在多次登录会造成校验验证码的问题(多次错误登录)。关于验证码的识别,发现pytesser实现识别验证码比较方便,正在安装ing(感觉Windows下安装好麻烦),先把循环读取代码贴出来:
# coding=utf-8 from selenium import webdriver import os,time userfile=open('users.txt') users=userfile.readlines() pwdfile=open('password.txt') pwds=pwdfile.readlines() driver=webdriver.Firefox() driver.get("http://www.baidu.com") #driver.maximize_window() driver.find_element_by_xpath(".//*[@id='u1']/a[6]").click() driver.current_window_handle for user in users: for pwd in pwds: #driver.current_window_handle driver.find_element_by_id("TANGRAM__PSP_8__userName").clear() driver.find_element_by_id("TANGRAM__PSP_8__userName").send_keys(user) driver.find_element_by_id("TANGRAM__PSP_8__password").clear() driver.find_element_by_id("TANGRAM__PSP_8__password").send_keys(pwd) driver.find_element_by_id("TANGRAM__PSP_8__submit").click() time.sleep(5) userfile.close() pwdfile.close() driver.quit()