1、环境安装

selenium的开发文档网址(英语好的可以直接看这个,写的很详细):http://selenium-python.readthedocs.io/

因为实现的时候使用的是谷歌浏览器,在运行脚本时需要下载一个chromedriver.exe,下载地址为(注意根据自己的谷歌浏览器的版本来下载):http://npm.taobao.org/mirrors/chromedriver/

将下载下来的chromedriver.exe放在chrome安装目录下。我的安装目录是(C:\Users\0923\AppData\Local\Google\Chrome\Application\)

配置环境变量PATH为chromedriver目录

pip install selenium

然后就可以写代码了:

# coding: utf-8
import time
from selenium import webdriver

from PIL import Image
import pytesseract

browser = webdriver.Chrome()
browser.get('http://www.lxwc.com.cn')
browser.maximize_window()

# 根据路径找到按钮,并模拟进行点击
browser.find_element_by_xpath('//*[@id="toptb"]/div/div[1]/div[3]/ul/li[2]/a').click()
# 延时2秒,以便网页加载所有元素,避免之后找不到对应的元素
time.sleep(1)

# 根据路径找到按钮,并模拟进行点击
browser.find_element_by_xpath('//*[@id="normallogin"]/a').click()
# 延时2秒,以便网页加载所有元素,避免之后找不到对应的元素
time.sleep(1)

# 这里是找到输入框,发送要输入的用户名和密码,模拟登陆
browser.find_element_by_xpath(
    "//input[@name='username']").send_keys("xxx")

browser.find_element_by_xpath(
    "//input[@name='password']").send_keys("xxx")

# 在输入用户名和密码之后,点击登陆按钮
browser.find_element_by_xpath("//button[@name='loginsubmit']").click()

#验证码识别,未完成

element = browser.find_element_by_xpath("//img[@class='vm']")

location = element.location
size = element.size
left = location['x']
top =  location['y']
right = location['x'] + size['width']
bottom = location['y'] + size['height']

print(location)
print(size)

# 打开目标网站,并截取完整的图片
browser.get_screenshot_as_file('login.png')
im = Image.open('login.png')
im = im.crop((left, top, right, bottom))
im.save('code.png')

验证码部分:调用Pytesseract

https://www.jianshu.com/p/afcde49c57b7

python selenium chrome 实现自动化登录的更多相关文章

  1. python+selenium+chrome实现自动登录百度

    #python3.4+selenium3.5+chrome版本 63.0.3239.132+chrome驱动chromedriver.exe #实现自动登录百度 from selenium impor ...

  2. python+selenium+chrome初级自动化操作

    例1. #coding=utf- from selenium import webdriver import os,time chromedriver = "C:\Users\AppData ...

  3. python+selenium+Chrome options参数

    python+selenium+Chrome options参数 Chrome Options常用的行为一般有以下几种: 禁止图片和视频的加载:提升网页加载速度. 添加代理:用于翻墙访问某些页面,或者 ...

  4. 【Selenium03篇】python+selenium实现Web自动化:元素三类等待,多窗口切换,警告框处理,下拉框选择

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第三篇博 ...

  5. Docker环境下运行python+selenium+chrome

    Docker环境下运行python+selenium+chrome docker运行时占用的资源非常少,而且能将环境进行有效的隔离,可以快速的进行部署,因此可以将docker与selenium结合实现 ...

  6. 【Selenium01篇】python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 二.话不多说,直接开干,开始搭建自动化测试环境 这里以前在 ...

  7. 【Selenium02篇】python+selenium实现Web自动化:鼠标操作和键盘操作!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第二篇博 ...

  8. 【Selenium05篇】python+selenium实现Web自动化:读取ini配置文件,元素封装,代码封装,异常处理,兼容多浏览器执行

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第五篇博 ...

  9. 【Selenium04篇】python+selenium实现Web自动化:文件上传,Cookie操作,调用 JavaScript,窗口截图

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第四篇博 ...

随机推荐

  1. JavaScript 相关的工具代码

    博客地址:https://ainyi.com/49 记录一些数据处理需要的方法工具代码 持续更新中... 时间戳转与日期格式相互转换 时间戳转换成日期格式 function timestampToTi ...

  2. Ubuntu16.04 网络配置

    Ubuntu 网络配置 安装Ubuntu操作系统之后,为了通过Xshell连接主机,或者连接其他主机.需要进行如下网络配置和ssh服务配置. 1 网络配置 1.1 修改网络配置信息 sudo vi / ...

  3. MySQL MGR--数据同步原理

    MGR复制架构 在MySQL 5.7.17版本正式推出组复制(MySQL Group Repliation MGR),用来解决异步复制和半同步复制可能产生数据不一致的问题,组复制依靠分布式一致性协议( ...

  4. SQL SERVER- waitresource解读

    例如: OBJECT: 18:1769220894:8 第一个是dbid:18,第二个是objectid:1769220894,第三个是indexID:8 SELECT DB_NAME(18)SELE ...

  5. xtrbackup备份,及恢复数据

    模拟定时任务周日备份数据,周一数据变化,周一crontab定时任务增量备份,周二数据变化,周二crontabl增量备份,然后有人删库,我们进行恢复数据 模拟crontab 里的定时任务周日全备 [ro ...

  6. python使用 pdb 进行调试--- python -m pdb xxx.py 即可 和gdb使用一样

    使用 pdb 进行调试 pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点.单步调试.进入函数调试.查看当前代码.查看栈片段.动态改变变 ...

  7. 对 Jenkins+ANT+Jmeter 接口测试的实践

    转载地址:https://testerhome.com/topics/5262 1.前言 最近感觉大家都在讲Jenkins+jmeter+ant或maven的使用,但没有说到具体怎么投入到项目使用,只 ...

  8. Linux centos通过安装lszrz用CRT实现与Windows互相传文件

    本经验均在CentOSrelease6.7(Final)下操作,如知识有欠缺之处 欢迎批评指正: lrzsz是一个搭配SecureCRT使用的在linux和windows之间上传下载工具. 1 2 3 ...

  9. CSP-S 2019提高组训练 服务器需求

    时间限制:C/C++ 3秒 空间限制:C/C++ 262144K 题目描述 小多计划在接下来的n天里租用一些服务器,所有的服务器都是相同的.接下来n天中,第i天需要\(a_i\)台服务器工作,每台服务 ...

  10. NodeJS 多版本管理(NVM)

    前言 现在前端各种框架更新较快,对 Node 的依赖也不一样,Node 的过版本管理也很有必要. NVM(Node Version Manager),是一个 Node 的版本管理工具. 官方的 NVM ...