首先新建一个 wyEmailLoginPublic.py 文件 用来定义一个登录类

from selenium import webdriver
import time
class Login_In():'''登录类封装'''def __init__(self,driver):self.driver = driverdef open_url(self):'''打开登录的url'''url = 'https://mail.126.com/'self.driver.get(url)time.sleep(2)self.driver.maximize_window()time.sleep(3)def user_pwd_login(self):'''点击密码登录按钮。切换到账号密码登录'''self.driver.find_element_by_id('lbNormal').click()def login(self,username,pwd):'''注意iframe,因为是动态的id所以通过xpath去定位'''self.driver.switch_to.frame(self.driver.find_element_by_xpath("//iframe[starts-with(@id,'x-URS-iframe')]"))self.driver.find_element_by_name('email').send_keys(username)self.driver.find_element_by_name('password').send_keys(pwd)self.driver.find_element_by_id('dologin').click()def close_browser(self):'''退出浏览器'''self.driver.quit()def all_actions(self,username,pwd):'''全部方法封装到一个方法里'''self.open_url()self.user_pwd_login()  #点击切换到账号密码登录self.login(username,pwd)self.close_browser()

然后创建一个wyEmaillogin.py文件调用登录类

from selenium import webdriver
from common.wyEmailLoginPublic import Login_In
import timedriver = webdriver.Chrome()'''
a = Login_In(driver)  #实例化
a.open_url()
a.user_pwd_login()
a.login('1150730480','111111')
a.close_browser()
'''
#一步步调用太麻烦,使用action_all 方法
a = Login_In(driver)
a.all_actions('1150730480','11111')

上面的元素定位写的太多了,可以试着把元素定位,send_keys(),click()封装在一个类里面
新建一个base.py文件

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
import time
from selenium.webdriver.common.by import Byclass Base():def __init__(self,driver):self.driver = driverself.timeout = 10self.t = 0.5def findElement(self,locator):'''这里用的是显示等待的元素定位'''ele = WebDriverWait(self.driver, self.timeout, self.t).until(lambda x: x.find_element(*locator))return eledef sendKeys(self,locator,text):'''输入文本的方法:首先定位到输入框,然后输入text'''ele = self.findElement(locator)ele.send_keys(text)def click(self,locator):'''点击的方法'''ele = self.findElement(locator)ele.click()def closeBrowser(self):self.driver.quit()
#调试一下
if __name__ == "__main__":driver = webdriver.Chrome()driver.maximize_window()driver.get("https://mail.126.com/")log = Base(driver) #初始化loc1 = ('id', 'lbNormal')log.click(loc1)

然后新建一个 .py的文件引用

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from base import Base
driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://mail.126.com/")Log = Base(driver)loc1 = ('id', 'lbNormal')
loc2 = ('name', 'email')
loc3 = ('name', 'password')
loc4 = ('id', 'dologin')Log.click(loc1)
driver.switch_to.frame(driver.find_element_by_xpath("//iframe[starts-with(@id,'x-URS-iframe')]"))
Log.sendKeys(loc2,'1150730480')
Log.sendKeys(loc3,'111111')
Log.click(loc4)
Log.closeBrowser()

上面的是否可以考虑把所有方封装在一个方法里调用以后学习了再优化

python3 selenium 网易126邮箱自动化登录相关推荐

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

    Python+Selenium自动化测试--126邮箱自动登录脚本 版权声明:本文为博主原创文章,未经允许不得转载.https://blog.csdn.net/qiao_wan/article/det ...

  2. Python3 网易126邮箱收发邮件

    参考廖雪峰的Python教程,实现Python3 网易126邮箱收发邮件 发邮件 #!/usr/bin/python3 # coding: utf-8import smtplib from email ...

  3. selenium自动化测试--126邮箱登录问题总结

    虫师著selenium 2自动化测试实战基于python语言第四章习题4.3.1 126邮箱登录练习问题总结. 练习过程中,参考以下博友的博客顺利完成练习题: https://blog.csdn.ne ...

  4. Python+Selenium模拟126邮箱登录

    通过自学学习写一个简单的自动化测试模拟126邮箱登录.我知道实际的项目不可能这么简单,努力学习 ,争取下次写一个复杂的项目. 重要的事情说三遍:加油!加油!加油!/微笑 import time fro ...

  5. nodejs 邮件服务(网易126邮箱为例)

    最近需要实现有个邮箱验证和重置密码的服务,涉及到邮件发送的问题,团队其他成员实现了,自己学习下实现并记录下过程. 采用模块:nodemailer 模块官网:https://nodemailer.com ...

  6. Java+Selenium实现QQ邮箱自动登录、发邮件与退出

    初学selenium,用最近所学知识写了QQ邮箱自动登录.发送邮件.退出,算是对自己学习的知识的巩固吧.如果哪里有不足之处,就请各位告诉我,指导我一下,非常感谢. 登录页面 在网页登录QQ邮箱的时候, ...

  7. python3+selenium实现qq邮箱登陆并发送邮件

    基于selenium,使用chrome浏览器,完成qq邮箱登陆并发送发邮件功能,暂时未封装.qq邮箱和126邮箱登陆还是有一些区别的. #encoding=utf-8 from selenium im ...

  8. php 126怎么设置发送邮箱验证码,phpmailer发送网易126邮箱的例子

    本文介绍下,使用phpmailer发送网易126.com邮件的例子,有需要的朋友参考下. 使用PHPMailer类发邮件的例子: IsSMTP(); //邮件服务器 $mail->Host = ...

  9. python3.6实现126邮箱登录

    在这个实例中需要注意的是:iframe的切换,试了好几种都切换不成功,目前这个是成功的实例,希望可以帮助到大家! from selenium import webdriver from seleniu ...

最新文章

  1. Nginx配置文件nginx.conf中文详解(转)
  2. java rmi 原理和使用浅析
  3. javascript的函数定义的区别
  4. mysql数据库运行远程用户访问不了_MySQL数据库远程访问权限如何打开(两种方法)...
  5. P8-07-16 使用 Jenkins 自动构建 Maven 项目
  6. nfs文件服务器以及客户端基本配置
  7. how is odata metadata request served 故意把configuration file里的GM6改成GM61之后
  8. 消息中间件系列(五):MQ消息队列的12点核心原理总结
  9. python的类里的属性是否可以为列表_Python中如何获取类属性的列表
  10. Fiddler弱网测试
  11. 1709 ltsb 内存占用_Win10 LTSB|1709|1809|LTSC 八合一ISO镜像
  12. chrome浏览器使用console代码让115网盘免扫二维码登陆
  13. ORB_SLAM2源码阅读(一)概要
  14. 映美FP-530K+打印发票卡纸
  15. 魔方cfop公式软件_如何学习魔方?这份提速心得,亲测有效
  16. 面试题 - 头条、京东
  17. 黑马程序员--java简介
  18. 2014广东计算机一级试题及答案,广东计算机一级试题2014版
  19. 后端技术 - 收藏集 - 掘金
  20. Mybatis 实现Mysql批量插入数据,判断数据是否存在

热门文章

  1. Python 识别12306图片验证码物品
  2. 国庆出行预测:西南西北环线热度高,各城市旅游喜好差异明显
  3. Linux系统与windows系统的优缺点
  4. 潜意识的力量 (八)
  5. 举三反一,一通百通的“数学脑”是怎样炼成的?
  6. 如何通过PCIDSS来保护您的支付卡业务
  7. 稚晖君又整活啦,基于全志F1C200s的超迷你低成本开发板开源
  8. AI赋能:智能冰箱成为家居生活新管家
  9. 传智播客荣膺2017新浪教育盛典“中国品牌实力教育集团”奖
  10. 非 “典型” 研究生的一天