Python+Selenium自动化测试——126邮箱自动登录脚本

版权声明:本文为博主原创文章,未经允许不得转载。https://blog.csdn.net/qiao_wan/article/details/94743908

网上很多基于Python利用第三方库Selenium进行126邮箱自动登录的测试脚本,但是在具体实现的过程中还是遇到了一些小问题,具体的实现及解决方法如下:

1、登录126邮箱首页查看操作流程

打开126邮箱登录首页,可以发现默认的登录方式是“手机扫码”方式。如果我们想要模拟通过 “账号 + 密码” 的方式自动登录,则首先需要点击“密码登录”文字,才可进入输入账号密码登录的界面,然后依次输入账号、密码、点击登录,则完成一次操作。

2、在浏览器中分别查看上述元素的前端代码

我们可以通过鼠标右击“密码登录”、“账号 ”、“ 密码” 的登录框,通过“web开发者工具”,查看上述元素的前端代码如下,截图如下:
1、查看“密码登录”按钮的前端代码:


2、查看“账号输入 ”框的前端实现代码,并定位查询其id、name等属性:

3、查看“密码输入 ”框的前端实现代码,并定位查询其id、name等属性:

4、查看“登录 ”按钮的前端实现代码,并定位查询其id、name等属性:

5、定位并查看iframe的结构内容:

3、编写基于Python+Selenium进行126邮箱自动登录的测试脚本

注意内容:在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况(报selenium.common.exceptions.NoSuchElementException),很常见的原因就是Frame/Iframe原因定位不到元素。
这个原因很常见,首先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而 webdriver 每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位。
如果iframenameid的话,直接使用switch_to_frame("name值")switch_to_frame("id值") ,如果没有可用 id或者 name时,就需要通过其他的方法先定位到 iframe,再切换进去。
本例中,通过查看前端代码,通过driver.switch_to_frame("x-URS-iframe1562314804524.3333")直接定位到到iframe,发现报错,其原因是因为iframe的ID是动态生成的,所以用其他方法定位到改iframe(用其上一层父元素标签的唯一识别id/iframe来定位),即iframe = driver.find_element_by_xpath("//div[@id = 'loginDiv']/iframe")
Python实现代码如下:

#_*_ coding:utf-8_*_
#Author: Wanqiao
#Created Time:2019/7/5 15:04
#file:login126.py
from selenium import webdriver
import timedriver = webdriver.Firefox()
driver.get("http://www.126.com")
driver.find_element_by_id("switchAccountLogin").click()
time.sleep(1)
# 直接定位到对应的frame
#driver.switch_to_frame("x-URS-iframe1562314804524.3333")
#因为frame的ID是动态生成的,所以用其他方法定位到改iframe(其上一层唯一识别id/iframe)
iframe = driver.find_element_by_xpath("//div[@id = 'loginDiv']/iframe")
driver.switch_to_frame(iframe)
#执行登录操作
driver.find_element_by_name("email").clear()
driver.find_element_by_name("email").send_keys("emailName")
driver.find_element_by_name("password").clear()
driver.find_element_by_name("password").send_keys("passWord")
driver.find_element_by_id("dologin").click()

4、脚本运行成功

Python+Selenium自动化测试——126邮箱自动登录脚本(登录首页是二维码,切入账号密码输入框)相关推荐

  1. 【Python】使用qrcode库实现某校校门口进校二维码实时刷新

    [Python]使用qrcode库实现某校校门口进校二维码实时刷新 简介 因防疫要求,某学校校门口需要学生扫码进校,而部分学生不遵守学校制定的出入校规定,故学校要求在系统的二维码设定为实时刷新,且不允 ...

  2. 利用xposed自动获得支付宝个人收款二维码链接和收款记录

    一.说明 现在的App一般都会带有支付功能,而现在比较流行的支付一般有支付宝.微信.银行卡等,一般情况下,应用开发者会直接对接支付宝.微信或者第三方支付公司的Api,以完成支付,但是都需要收取不小的费 ...

  3. Python基于pyzbar、opencv、pyqt5库,实现二维码识别 gui 应用程序开发

    二维码组成结构基本介绍 二维码识别背景介绍 视觉的方法可以用来估计位置和姿态.最容易想到的是在目标上布置多个容易识别的特征,这样使用opencv相机标定和.相机畸变矫正.轮廓提取.solvepnp来获 ...

  4. MVP(登录判断+xlistview+二维码)

    1.主页面布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andr ...

  5. python zxing 识别条码_Python zxing 库解析(条形码二维码识别)

    各种扫码软件 最近要做个二维码识别的项目,查到二维码识别有好多开源的不开源的软件 Zbar 首先试了一下Zbar,python加载ZBar时各种报错.可能的原因是zbar的dll文件是32位的,而我系 ...

  6. web网页端 微信 登录 内嵌 二维码 方法

    步骤1:在页面中先引入如下JS文件(支持https): http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js 步骤2:在需要使用微信 ...

  7. 微信|QQ扫码登录网页版二维码失效问题解决方案 网站无法访问PC网页版如何解决 安卓软件历史版本下载 FV fooview悬浮球帮助教程

    前言 1. 手机端浏览器登录网页的同时再用微信或者QQ扫码登录出现二维码失效问题如何解决? 2.部分网站无法访问PC网页版如何解决?请看方案 目录 前言 1.方案 2.方案 使用Edge安卓浏览器访问 ...

  8. Python番外篇:Flask+segno 实现个人名片二维码在线生成器

    hello,我是wangzirui32,今天来教大家如何Flask框架和segno模块实现个人名片二维码在线生成器. 开始学习吧! 1. 项目架构 image文件夹为空,templates下存储了2个 ...

  9. 第一次使用微信开发者工具,登录不显示二维码

    下载完微信开发者工具,第一次打开就提示当前系统代理不是安全代理是否信任,不显示登录二维码,提示网络连接失败. 解决方案:  电脑管家 --> 工具箱  --> 系统急救箱,然后重新打开微信 ...

最新文章

  1. GCB | 南土所冯有智组揭示了温度非线性的控制了全球土壤腐生真菌地理学分布...
  2. IOT物联网观察之三大运营商物联网发展进入规模商用阶段
  3. 速卖通运营之选品方法和技巧
  4. 简单的消息发送小程序
  5. Jsoup解析HTML字符串
  6. Mybatis下collections使用pageHelper进行分页
  7. vue+filter过滤器(多参数)传参 - 代码篇
  8. 走错路也要美美的!富有创意的404页面设计灵感
  9. 【转】【真正福利】成为专业程序员路上用到的各种优秀资料、神器及框架
  10. OpenCV 4.0 在Windows10系统下的安装教程
  11. java如何调用蜂鸣器_用鸿蒙OS在蜂鸣器上播放一曲《两只老虎》
  12. Linux:CentOS中SFTP工具的使用
  13. Genaro Network厚积薄发,开创区块链3.0新时代
  14. 仙剑制作人教你成为游戏人
  15. 100以内的奇数和是多少,问一下100以内的奇数和偶数分别相加起来和是多少?
  16. iOS 最新AppStore申请加急审核 以及 apple联系方式大全
  17. ps链接图层的使用方法和快捷键,ps图层链接怎么做的
  18. runge phenomenon(龙格现象)和过拟合
  19. 英语语法---代词详解
  20. 【入门级】Hibernate环境搭建

热门文章

  1. (matlab代码分享,可运行) 多技能员工排班调度多目标优化(技能熟练度包含学习型、遗忘型)(Part 1)
  2. Matlab数字图像处理——图像处理工具箱Image Processing Toolbox
  3. 路由器的静态路由配置以及OSPF动态配置
  4. OSPFB笔记-五个报文【超详细】[Hello报文,DD报文,LSR报文,LSU报文,LSAck报文]
  5. 关于Android import-module 和NDK_MODULE_PATH
  6. 润乾报表数据集中参数和宏的使用方法
  7. 快速准确读取发票信息——发票扫描识别系统
  8. Windows 系统重装 - 制作 Win10 启动盘
  9. uVision, MDK, realview的关系
  10. it行业计算机考试认证全集