1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Python+Selenium自动化测试——126邮箱自动登录脚本(登录首页是二维码 切入账号密码输入框)

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

时间:2021-05-15 15:58:53

相关推荐

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

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

版权声明:本文为博主原创文章,未经允许。/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应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况(报mon.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:/7/5 15:04#file:login126.pyfrom selenium import webdriverimport timedriver = webdriver.Firefox()driver.get("")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、脚本运行成功

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。