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. Combox控件绑定大量数据卡顿问题与解决办法

    一般我们WPF中Combox的绑定都是下面这种写法. XAML: <ComboBox IsEditable="False" ItemsSource="{Bindin ...

  2. linux上SVN出现 "Unable to connect to a repository at URL 'svn://xx.xx.xx.xx/xxx' 和 No repository ...

    centos上安装了svn, 有时候会不知道什么原因出现客户端小乌龟无法连接或无法提交等情况. 1. 万能重启,xshell连接服务器,输入 service svnserve restart 命令. ...

  3. 【OEM】OEM安装维护

    [OEM]OEM安装维护 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道 ...

  4. win10 提示该文件没有与之关联的应用来执行该操作

    将下面代码复制进一个文本文档,然后将文本文档的txt后缀改成bat.双击运行,可以解决问题. 问题发生原因是之前通过注册表去除了桌面图标的快捷方式的小标志. /-------------------- ...

  5. MySQL-CentOS7上安装Mysql5.7

    #安装 wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm .noarch.rpm yum instal ...

  6. 解决 Vue 刷新页面后 store 数据丢失的问题

    原来的状态(页面刷新数据会重置) state: { teamA: '主队' }, mutations: { data_teamA(state, x) { state.teamA = x } },   ...

  7. libpng 漏洞分析

    相关资源 PNG文件格式文档 http://www.libpng.org/pub/png/spec/1.2/PNG-Chunks.html https://www.myway5.com/index.p ...

  8. python - django 使用ajax将图片上传到服务器并渲染到前端

    一.前端代码 <!doctype html> <html lang="en"> <head> <meta charset="UT ...

  9. LeetCode 873. Length of Longest Fibonacci Subsequence

    原题链接在这里:https://leetcode.com/problems/length-of-longest-fibonacci-subsequence/ 题目: A sequence X_1, X ...

  10. php 正则表达示中的原子

    原子 原子是正则表达示里面的最小单位,原子说白了就是需要匹配的内容.一个成立的正则表达示当中必须最少要有一个原子.大理石平台精度等级 所有可见不可见的字符就是原子 说明:我们见到的空格.回车.换行.0 ...