自动化测试QQ邮箱登录【问题及完整测试代码】
一、问题描述:
使用百度搜索QQ邮箱,点击邮箱官网进入QQ邮箱首页后,切换到iframe中报错(无法找到元素)。
二、代码描述:
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.get('https://www.baidu.com')
souSuo=driver.find_element('id', 'kw')
souSuo.click()
souSuo.clear()
souSuo.send_keys('QQ邮箱')
driver.find_element('id', 'su').click()
time.sleep(2)
driver.find_element('xpath', '//*[@id="content_left"]/div[1]/div/div[1]/h3/a[1]').click()
time.sleep(2)
# driver.get("https://mail.qq.com/")
iframe=driver.find_element("xpath", "//iframe[@id='login_frame']")
driver.switch_to.frame(iframe)
该代码执行后会报错,而将4-12行改为driver.get("https://mail.qq.com/")
代码不再报错。
原因:当使用百度搜索邮箱,再点击打开QQ邮箱首页之后,我们看到页面切换到QQ邮箱首页,而实际上后续的自动化操作依旧是在百度页面上进行的。因此直接切换到iframe会报错。
三、解决方法:
先h=driver.window_handles
获取所有句柄,再通过driver.switch_to.window(h[1])
切换到第二个窗口,然后再进行后续操作。
代码如下:
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.get('https://www.baidu.com')
souSuo=driver.find_element('id', 'kw')
souSuo.click()
souSuo.clear()
souSuo.send_keys('QQ邮箱')
driver.find_element('id', 'su').click()
time.sleep(2)
driver.find_element('xpath', '//*[@id="content_left"]/div[1]/div/div[1]/h3/a[1]').click()
time.sleep(2)
# driver.get("https://mail.qq.com/")
h = driver.window_handles#获取所有句柄
driver.switch_to.window(h[1])#切换到第二个窗口
time.sleep(2)
iframe=driver.find_element("xpath", "//iframe[@id='login_frame']")
driver.switch_to.frame(iframe)
四、完整测试代码
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.get('https://www.baidu.com')
souSuo=driver.find_element('id', 'kw')
souSuo.click()
souSuo.clear()
souSuo.send_keys('QQ邮箱')
driver.find_element('id', 'su').click()
time.sleep(2)
driver.find_element('xpath', '//*[@id="content_left"]/div[1]/div/div[1]/h3/a[1]').click()
time.sleep(2)
# driver.get("https://mail.qq.com/")
h = driver.window_handles#获取所有句柄
driver.switch_to.window(h[1])#切换到第二个窗口
time.sleep(2)
iframe=driver.find_element("xpath", "//iframe[@id='login_frame']")
driver.switch_to.frame(iframe)driver.find_element('id', 'u').click()
driver.find_element('id', 'u').send_keys('user')
driver.find_element('id', 'p').click()
driver.find_element('id', 'p').send_keys('password')
driver.find_element('id', 'login_button').click()
自动化测试QQ邮箱登录【问题及完整测试代码】相关推荐
- web自动化测试——QQ邮箱登录之Bussiness(login)登录操作
from Commomlib.Commonlib import Commonclass Login(Common):'''继承Common类'''def login(self, user, pwd): ...
- HTML+CSS 模拟QQ邮箱登录界面
模拟QQ邮箱登录界面 index.html <!DOCTYPE html> <html lang="en"> <head><meta ch ...
- [实战篇]关于QQ邮箱登录之测试用例
今天,我们来分析一个关于QQ邮箱登录模块的测试用例: 邮箱登录模块它就只有两个,一个是登录账号,一个是登录密码.在上一篇注册模块的文章中分析过,如果是一个输入框的话,你就直接对这一个输入框进行等价类划 ...
- python实现kindle每天推送博客1----kindle推送原理,python实现qq邮箱登录及邮件发送
kindle想每天看新闻,看博客, 其实自己用python写个代码就能很简单实现了. 1.kindle推送原理 kindle不仅可以买书看书,还可以自己推送内容 原理很简单,往你个人的kindle邮箱 ...
- QQ邮箱登录PC布局实战笔记二
本文目标: 尽量100%还原QQ邮箱登录界面头部区域,掌握div之间的位置关系,掌握常见的定位技术和浮动技术.将头部所需要的HTML标签进行仔细学习. 开始准备: 浏览器:Firefox/Chrome ...
- QQ邮箱登录PC布局实战笔记一
QQ邮箱布局实战(PC)笔记<一> 开篇说明: 这个系列的笔记算是作为我复习前端知识的一个系列吧.前端的知识很杂,各种小技巧很多,而且更新变化很快,不像我们在校学习的那些计算机基础理论知识 ...
- Java实现QQ邮箱登录,实现邮箱验证码三分钟失效,代码实现发送验证码和登录全过程思路。内附完整项目。
温馨提示: 如果感觉本文章困难,请移步简单的邮箱验证,不涉及数据库和Redis,点击我进行跳转 使用技术: 1. MySQL数据库 2. Redis缓存(极其简单)点击此处学习 功能介绍: 发送验证码 ...
- 自动化测试——QQ邮箱登陆
Selenium+TestNG+Maven+IDEA 前言: Selenium是Web UI自动化测试套件之一,它支持不同浏览器(CHrome,Mozilla Firefox,Internet Exp ...
- java qq邮箱登录_SpringBoot实现QQ邮箱注册和登录
1.登录注册思路 这是一个使用spring boot做的一个qq邮箱注册和登录的项目. 没写前端页面,使用postman测试.有截图详细. 1.1.思路 注册:通过输入的邮箱发送验证码,检验前端传来的 ...
最新文章
- RecyclerView Adapter中notifyDataSetChanged 的作用
- 【java线程】锁机制:synchronized、Lock、Condition
- tf_geometric的安装
- 苹果浏览器移动端click事件延迟300ms的原因以及解决办法
- Wireshark抓包—maybe caused by 'IP chechsum offload'?
- 21天让你成为Horizon View高手—Day11:手动池的创建
- android.content.res.Resources$NotFoundException: String resource ID #0x0
- Virtuabox 虚拟机克隆方法
- 修改FTP服务器时长,连接ftp服务器的时长怎么设置
- vs code html插件_VS插件CodeRush全新发布v20.1.7|支持HTML
- 搭建springmvc项目遇到的问题
- 地图poi数据库下载
- 从Gaussian 09的Hartree-Fock计算的fchk文件转换到Columbus的mocoef文件的脚本
- w ndows 那个比较好用,DOS工具箱哪个好用?DOS工具箱盘点
- 亲属卡额度是什么意思_疯狂申请“平安大润发卡”,你会白干一场
- 计算机电路中bga是什么,什么是BGA BGA的结构和性能
- 504网站服务器传输超时,504源服务器链接超时cdn
- vue单独设置页面背景
- java计算机毕业设计口红专卖网站MyBatis+系统+LW文档+源码+调试部署
- mix2线刷开发板救砖_小米MIX 2手机一键线刷救砖教程,轻松刷回官方系统
热门文章
- 数据库DDL(Data Definition Language,数据定义语言)知识点
- Unix.Trojan.DDoS_XOR-1、Linux.Trojan.Agent(Linux.BackDoor.Gates.5)木马清理
- SpringCloud 教程 (二) 服务链路追踪(Spring Cloud Sleuth)
- Unity3D摄像机跟随人物移动脚本
- 六种方法实现JavaScript数组去重
- arp嗅探(windows)
- cannot import name ‘_registerMatType‘ from ‘cv2.cv2‘
- 数据库云管平台将成为企业数字化转型的重要工具
- pythonshell怎么用中文_python 在powershell中运行中文乱码时有时无怎么办?
- freemaker生成doc文档(特殊字符导致异常)