Python + Selenium 登录QQ邮箱

简介: 本文涉及到的python, python decorater, selenium. 想要了解用python + selenium做web自动化测试的童鞋,了解一下

Python + Selenium 自动化登录QQ邮箱

准备工作

  • Windows或则Linux
  • 安装Python
  • 安装Selenium
  • 安装Chrome Driver

环境选择Windows 10

安装Python

Windows下安装 python 3.7.0 (因为python 2和python 3存在很多语法的不兼容,我们这里选择python 3)
下载链接:https://www.python.org/ftp/python/3.7.0/python-3.7.0-amd64.exe
测试是否安装成功:

C:\Users\xiak>python --version
Python 3.7.0

C:\Users\xiak>pip --version
pip 10.0.1 from c:\python3\lib\site-packages\pip (python 3.7)

安装Selenium

pip install selenium

安装Chrome driver

下载地址:
https://sites.google.com/a/chromium.org/chromedriver/downloads
或则国内镜像
http://npm.taobao.org/mirrors/chromedriver/

下载成功后,解压得到chromedriver.exe文件, 把这个文件复制到python的目录下或则把chromedriver.exe文件所在目录加入到PATH环境变量中

开始正题

访问QQ邮箱太频繁的话会出现验证码滑条,你需要在30秒内手动操作滑条,不然的话可能出错。

  • 复制后面的脚本
  • 把脚本中的邮箱用户名和密码改成你自己的
  @login(
    chrome,
    "http://mail.qq.com",
    "change to your email",
    "change to your password",
  )
  • 脚本打开mail.qq.com
  • 自动输入用户名密码
  • 登录成功
#_*_coding:utf-8_*_

from selenium import webdriver

chrome = webdriver.Chrome()
chrome.implicitly_wait(30)

# Decorater
# 登录
def login(driver, url, user, pwd):
    def decorate(func):
        def f(*args, **kwargs):
            logger.info("正在登录: %s ..." % (url,))
            driver.get(url)
            driver.switch_to.frame("login_frame")
            driver.find_element_by_id("switcher_plogin").click()
            driver.find_element_by_id("u").clear()
            driver.find_element_by_id("u").send_keys(user)
            driver.find_element_by_id("p").clear()
            driver.find_element_by_id("p").send_keys(pwd)
            driver.find_element_by_id("login_button").click()
            # 侦测验证码,需要手动处理
            logger.info("验证码程序侦测中 ...")
            captcha = ""
            try:
                captcha = driver.find_element_by_id("newVcodeArea").text
            except NoSuchElementException:
                logger.info("没有验证码程序")

            if captcha != "":
                logger.info("发现验证码程序, 请在页面上操作验证码滑条")
                cur_url = driver.current_url
                # 如果没有页面跳转的话,一直循环下去
                # 如果页面发生跳转则跳出循环
                while True:
                    url_must_changed = driver.current_url
                    if url_must_changed != cur_url:
                        break
                    time.sleep(1)

            uinfo = driver.find_element_by_id("useralias").text
            if uinfo != "":
                logger.info("登录成功: 欢迎 %s" % (uinfo,))
            else:
                logger.error("登录失败")
                exit(1)
            return func(*args, **kwargs)
        return f
    return decorate

@login(
    chrome,
    "http://mail.qq.com",
    "mail user name",
    "mail password",
)
def dosomething():
    pass

if __name__ == "__main__":
    dosomething()
目录
相关文章
|
4月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
226 5
|
6月前
|
前端开发 JavaScript Java
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
本文介绍了一个结合SpringBoot和Python的实用功能,旨在监控iPhone 15的库存状态并通过邮件提醒用户。系统采用SpringBoot监听苹果官网API,解析JSON数据判断是否有货,并展示最近的库存记录。此外,还能自动触发Selenium+Python脚本实现自动化购买。文中详细介绍了技术栈、接口分析、邮件配置及自动化脚本的设置方法。该项目不仅适用于熟悉后端开发的人员,也适合回顾Layui和Jquery等前端技术。
76 0
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
|
3月前
|
数据采集 Web App开发 前端开发
Python爬虫进阶:Selenium在动态网页抓取中的实战
【10月更文挑战第26天】动态网页抓取是网络爬虫的难点,因为数据通常通过JavaScript异步加载。Selenium通过模拟浏览器行为,可以加载和执行JavaScript,从而获取动态网页的完整内容。本文通过实战案例,介绍如何使用Selenium在Python中抓取动态网页。首先安装Selenium库和浏览器驱动,然后通过示例代码展示如何抓取英国国家美术馆的图片信息。
196 6
|
4月前
|
数据采集 Web App开发 数据可视化
Python爬虫教程:Selenium可视化爬虫的快速入门
Python爬虫教程:Selenium可视化爬虫的快速入门
|
3月前
|
测试技术 API 数据安全/隐私保护
Python连接到Jira实例、登录、查询、修改和创建bug
通过使用Python和Jira的REST API,可以方便地连接到Jira实例并进行各种操作,包括查询、修改和创建Bug。`jira`库提供了简洁的接口,使得这些操作变得简单易行。无论是自动化测试还是开发工作流的集成,这些方法都可以极大地提高效率和准确性。希望通过本文的介绍,您能够更好地理解和应用这些技术。
353 0
|
4月前
|
测试技术 数据安全/隐私保护 开发者
自动化测试的奥秘:如何用Selenium和Python提升软件质量
【9月更文挑战第35天】在软件开发的海洋中,自动化测试是那艘能引领我们穿越波涛的帆船。本文将揭开自动化测试的神秘面纱,以Selenium和Python为工具,展示如何构建一个简单而强大的自动化测试框架。我们将从基础出发,逐步深入到高级应用,让读者能够理解并实现自动化测试脚本,从而提升软件的质量与可靠性。
|
5月前
|
Web App开发 测试技术 持续交付
自动化测试的利器:Selenium与Python的完美结合
【9月更文挑战第21天】在软件开发的世界里,测试是确保产品质量的关键步骤。随着敏捷开发和持续集成的流行,自动化测试工具变得尤为重要。本文将介绍如何使用Selenium和Python进行高效的自动化测试,不仅提供代码示例,还深入探讨如何设计测试用例、选择正确的测试框架、以及如何整合到CI/CD流程中。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用的技巧。
86 3
|
6月前
|
Web App开发 测试技术 API
自动化测试之美:使用Selenium和Python进行Web应用测试
【8月更文挑战第31天】在软件开发的快节奏世界中,自动化测试如同一束明灯,照亮了质量保证之路。本文将引导你通过Selenium和Python的强大组合,探索如何构建高效的Web应用测试框架。我们不仅会讨论理论,还会深入代码,从一个简单的示例开始,逐步扩展至更复杂的场景。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用的技巧。让我们一同揭开自动化测试的神秘面纱,体验它的魅力所在。
|
6月前
|
Web App开发 XML 测试技术
自动化测试框架设计:以Python和Selenium为例
【8月更文挑战第31天】在软件开发的快节奏中,自动化测试成为确保产品质量的关键步骤。本文将引导读者了解如何结合Python语言和Selenium工具来设计一个高效的自动化测试框架。通过浅显易懂的语言和实际代码示例,我们将探索自动化测试框架的核心组件,并学习如何实现它们。无论你是测试新手还是希望提升自动化技能的开发者,这篇文章都将为你打开一扇通向高效软件测试的大门。
|
5月前
|
敏捷开发 测试技术 持续交付
自动化测试之美:如何用Selenium和Python打造高效测试脚本
【9月更文挑战第13天】在软件开发的海洋中,自动化测试是那抹不可或缺的亮色。它不仅提升了测试效率,还保障了产品质量。本文将带你领略使用Selenium和Python构建自动化测试脚本的魅力所在,从环境的搭建到脚本的编写,再到问题的排查,每一步都是对软件质量把控的深刻理解和实践。让我们开始这段探索之旅,解锁自动化测试的秘密吧!
110 0

热门文章

最新文章