#coding=utf-8
__author__ = 'wb'
from selenium import webdriver
from  selenium.webdriver.common.action_chains import ActionChains
import  time
import  pytesseract
from PIL import  Image

driver = webdriver.Firefox()
driver.get("https://www.guahao.com/user/login?target=%2F")
driver.maximize_window()


driver.find_element_by_id("loginId").send_keys("****") #  登录名称

driver.find_element_by_id("password").send_keys("****") # 登录密码
# 校验验证码
driver.maximize_window()  #将浏览器最大化
driver.save_screenshot('d://aa.png')  #截取当前网页,该网页有我们需要的验证码
imgelement = driver.find_element_by_xpath('//img[@src="/validcode/genp_w_picpath/1"]')
#imgelement = driver.find_element_by_xpath('/html/body/div/div/div/div[2]/div[2]/div/div/div/from/ul/li[3]/a/src')  #定位验证码
location = imgelement.location  #获取验证码x,y轴坐标
size=imgelement.size  #获取验证码的长宽
rangle=(int(location['x']),int(location['y']),int(location['x']+size['width']),int(location['y']+size['height'])) #写成我们需要截取的位置坐标
i=Image.open("d://aa.png") #打开截图
frame4=i.crop(rangle)  #使用Image的crop函数,从截图中再次截取我们需要的区域
frame4.save('d://frame4.jpg')
qq=Image.open('d://frame4.jpg')
text = pytesseract.p_w_picpath_to_string(qq).strip() #使用p_w_picpath_to_string识别验证码
time.sleep(3)
print text
driver.find_element_by_id('validCode').send_keys(text)
time.sleep(3)
# 点击登录
driver.find_element_by_id("J_LoginSubmit").click()
# driver.quit()

先是条环境,从网上找资料。最终终于可以登录,但是验证码辨认不是很高,会有登录失败率。