在https://www.oschina.net/(开源中国)网站使用邮箱注册,登录QQ邮箱激活注册帐号:

#coding=utf-8
from selenium importwebdriver#用谷歌浏览打开https://www.oschina.net/
drvier=webdriver.Chrome()
drvier.get('https://www.oschina.net/')#浏览器在全屏幕模式下执行2
drvier.maximize_window()#点击注册
drvier.find_element_by_xpath('/html/body/header/div/div[2]/div/a[2]').click()#使用邮箱注册
drvier.find_element_by_xpath('/html/body/section/div/div/div[1]/nav/span[2]/span').click()#输入邮箱
drvier.find_element_by_xpath('//*[@id="userMail"]').send_keys('******')#输入昵称
drvier.find_element_by_xpath('//*[@id="mail_logon"]/div/div[2]/div[1]/input').send_keys('******')#输入密码
drvier.find_element_by_xpath('//*[@id="mail_logon"]/div/div[3]/div[1]/input').send_keys('******')#再次输入密码
drvier.find_element_by_xpath('//*[@id="mail_logon"]/div/div[4]/div[1]/input').send_keys('******')#手动输入验证码
number=input('请输入验证码:')
drvier.find_element_by_xpath('//*[@id="mail_logon"]/div/div[5]/div[1]/input').send_keys(number)#选择性别
drvier.find_element_by_xpath('//*[@id="mail_logon"]/div/div[6]/div/div[2]/label').click()#同意协议
drvier.find_element_by_xpath('//*[@id="mail_logon"]/div/div[7]/div[1]/input').click()#点击注册
drvier.find_element_by_xpath('//*[@id="mail_logon"]/div/div[8]/button').click()
#访问QQ邮箱
drvier.get('https://mail.qq.com/')#切换到iframe(id='login_frame')
drvier.switch_to.frame('login_frame')#登录QQ邮箱激活开源中国社区
drvier.find_element_by_xpath('//*[@id="u"]').send_keys('******')
drvier.find_element_by_xpath('//*[@id="p"]').send_keys('******')
drvier.find_element_by_xpath('//*[@id="login_button"]').click()#切换到iframe(id='mainFrame')
drvier.implicitly_wait(3)
drvier.switch_to.frame(drvier.find_element_by_xpath('//*[@id="mainFrame"]'))#点击收件箱
drvier.find_element_by_xpath('//*[@id="folder_1"]').click()#点击激活邮件
drvier.find_element_by_xpath('//*[@id="div_showtoday"]/table/tbody/tr/td[3]/table/tbody/tr/td[3]/div[1]/u').click()#获得激活链接窗口句柄
jh_windows=drvier.current_window_handle#点击激活链接
drvier.find_element_by_xpath('//*[@id="mailContentContainer"]/table/tbody/tr[3]/td/p[2]/a').click()#获得当前所有打开的窗口的句柄
all_handles =drvier.window_handles#获得继续访问窗口句柄
for handle inall_handles:if handle !=jh_windows:drvier.switch_to.window(handle)#点击继续访问
drvier.find_element_by_xpath('/html/body/div/div[2]/div[2]/a[1]').click()

问题一:刚开始在定位昵称、密码、验证码、性别、协议、注册元素时,提示:element not visible ,原因是由于页面上有两个结构类似的元素(用手机注册也有这些元素),因为这个定义对“手机注册”元素也同样适用,而且“手机注册”元素的位置在前面,所以就会出现element not visible。

解决方法:使用全路径的xpath(或者是往前定位,直到能区分出元素1和元素2)。

问题二:在登录页面定位用户名和密码时,提示:NoSuchElementException: Message: Unable to locate element,原因是由于嵌套了iframe框架WebDriver 每次只能在一个页面上识别元素,对于iframe 嵌套内的页面上的元素,直接定位是定位是定位不到的。

解决方法:selenium提供了switch_to.frame()方法来切换frame,括号里的内容可以传入id、name、index以及selenium的WebElement对象。

通常采用id和name就能够解决绝大多数问题。但有时候frame并无这两项属性,则可以用index和WebElement来定位:

  • index从0开始,传入整型参数即判定为用index定位,传入str参数则判定为用id/name定位;
  • WebElement对象,即用find_element系列方法所取得的对象,我们可以用tag_name、xpath等来定位frame对象。

问题三:在用“find_element_by_class_name()”方法定位元素属性class="c-footer-a1 btn_blue"时,提示:invalid selector: Compound class names not permitted,原因是由于class属性存在空格,

解决方法:换成CSS 定位或者其他方式定位。

问题四:在最后点击继续访问按钮时,提示:NoSuchElementException: Message: Unable to locate element,原因是由于没有定位到当前窗口。

解决方法:

  • current_window_handle  获得当前窗口句柄
  • window_handles   返回的所有窗口的句柄到当前会话
  • switch_to_window()用于切换到相应的窗口,与上一节的switch_to_frame() 是类似,前者用于不同窗口的切换,后者用于不同表单之间的切换。

转载于:https://www.cnblogs.com/lengjf/p/8158279.html

自动化测试脚本-帐号注册到激活相关推荐

  1. Git Git 第九章 国内代码托管中心 码云 -- 码云(简介 码云帐号注册和登录 码云创建远程库 IDEA 集成码云 导入GitHub项目)

    1. 简介 众所周知,GitHub 服务器在国外,使用 GitHub 作为项目托管网站,如果网速不好的话,严重影响使用体验,甚至会出现登录不上的情况.针对这个情况,大家也可以使用国内的项目托管网站-码 ...

  2. 企业百家帐号注册全流程

    企业百家帐号注册全流程 企业百家帐号注册全流程

  3. google账号注册流程升级了!2023年谷歌gmail邮箱帐号注册申请教程(完整版)

    google账号注册升级了! 2023年4月份google账号注册流程升级了,升级之前的版本是完成验证手机号码后才填写用户资料,升级之后的版本是需要先填写用户资料才能注册谷歌gmail邮箱帐号: 20 ...

  4. 微信公众号三方平台开发【帐号注册、平台创建】

    上一期咱们简单介绍了一下什么是公众号第三方平台,今天咱们讲具体如何操作来创建属于你自己的微信第三方平台. [注册] 首先当然是移步前往微信开放平台注册开发者帐号啦~注册传送门 进去后,会看到如下图页面 ...

  5. wp7(windows phone 7 )开发者帐号注册,dreamspark注册,edu.cn节约99刀

    老话:首先到这里 注册一个可以注册dreamspark的邮箱.当然你说学生可以使用自己的edu邮箱(注意你的邮箱必须支持live,你也可以点击这里询问详情).至于dreamspark怎么注册,请点击这 ...

  6. 抖音帐号注册需要注意什么

    虽然短视频是大势所趋,但是我们在抖音上也不能瞎玩,注册时需要避开哪些坑?怎样才能更快的吸引到第一批粉丝?新手一定不要错过今天的课程干货. 首先,你要记住账号注册一卡一号一手机新手在抖音账号注册. 其次 ...

  7. Ajax实现简单的登录验证与帐号注册

    上一篇博客介绍了Ajax的GET和POST方法以及上传文件的进度条展示,这篇博客将介绍一个简单的登录与注册功能的实现 设计HTML 这个是即将成为我毕业设计的一个网站, 在导航栏我添加了两个注册和登录 ...

  8. Xbox帐号注册购买

    操作步骤 1.请先建立一个hotmail的邮箱,http://www.hotmail.com/ ,选下方 立即注册 2.填写注册信息,电话号码选中国,输入自己的手机号(会有验证短信),还有自己的密保邮 ...

  9. dreamspark 注册,wp7 app hub微软手机开发者帐号(全新3步注册)

    1.首先到这里 注册一个可以注册dreamspark的邮箱.当然你说学生可以使用自己的edu邮箱(注意你的邮箱必须支持live,你也可以点击这里询问详情). 2.登陆windows live,提示修改 ...

最新文章

  1. NumPy迎来重大版本更新,新增函数注释、滑动窗口视图功能,仅支持Python 3.7以上版本...
  2. 《深入理解Java虚拟机》笔记5——类加载机制与字节码执行引擎
  3. linux挂载磁盘分区,Linux 新磁盘分区与挂载
  4. java程序弊端_面向对象编程的弊端是什么?
  5. dynamodb java_使用Java扫描DynamoDB项目
  6. 如何在阿里云•对象存储OSS托管用户域名的https证书
  7. 怎样在半个月内迅速提升技能,搞定面试进 大厂?
  8. microsoft query sql引用单元格_Microsoft.Office.Interop.Excel操作Excel拾遗
  9. 2021年Java基础面试题总结
  10. matlab liccode,有没有哪位大佬能帮忙解决以下两个错误:liccode=cha
  11. 如果判断小米MIUI的NFC权限、后台弹出界面权限是否禁用
  12. 怎么将flac转换成mp3
  13. 除了打工上班,为什么普通人很难长时间坚持去做一件事?
  14. javascript作用域链与原型链有联系吗?
  15. 方向导数与梯度(衡量空间向量变化趋势)
  16. 如何编译DD-WRT
  17. 七步成诗(事)- 定义问题
  18. 开发笔记 – Spring Boot集成HBase(Hadoop和Hbase安装)
  19. Windows Server 2012 R2 RTM版安装
  20. 友盟QQ第三方授权登陆(精简)

热门文章

  1. 【JSOI 2018】潜入行动(树形动态规划)
  2. 星象仪- 大塚爱 歌词
  3. ZCMU 1074-1079
  4. python期末大作业-图形化爬虫
  5. 中科院计算机所博士何飞,何飞-中国科学院大学-UCAS
  6. 最能拉出同行差距的细节,99%的零售店老板都错过了
  7. 实现斐波拉契的三种方法
  8. Android 之 设置屏幕常亮
  9. PMP自学不报班5A通过经验总结(附PMBOK高清电子书完整书签)
  10. 为什么普遍用Linux做服务器?