不知道有多少人看过虫师的selenium自动化实战,里面有一篇是关于page object设计模式的一段代码,是以登录126邮箱为例,但是这段代码已经不适用了,运行起来会报错,下面是我根据虫师的代码改良后的,给需要帮助的人提供一些参考。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
class Page(object):"""基础类,用于页面对象的继承"""
    login_url='http://www.126.com/'

    def __init__(self, selenium_driver, base_url=login_url):self.base_url=base_urlself.driver=selenium_driverself.timeout=30def on_page(self):return self.driver.current_url==(self.base_url)def _open(self):self.driver.get(self.base_url)self.driver.maximize_window()xf=self.driver.find_element_by_id("x-URS-iframe")self.driver.switch_to_frame(xf)assert self.on_page(),'Did not land on %s'% self.base_urldef open(self):self._open()def find_element(self, *loc):return self.driver.find_element(*loc)class Loginpage(Page):"""126邮箱登录页面模型"""
    # url='/'
    #定位器
    username_loc=(By.NAME,"email")password_loc=(By.NAME,"password")submit_loc=(By.ID,"dologin")#Action
    def type_username(self, username):self.find_element(*self.username_loc).send_keys(username)def type_password(self, password):self.find_element(*self.password_loc).send_keys(password)def submit(self):self.find_element(*self.submit_loc).click()def test_user_login(driver,username,password):"""测试获取的用户名/密码是否可以登录"""
    login_page=Loginpage(driver)login_page.open()login_page.type_username(username)login_page.type_password(password)login_page.submit()def main():try:driver=webdriver.Firefox()username='username'#这里填写你的真实登录邮箱账号
        password='password'#这里填写你的真实登录邮箱密码
        test_user_login(driver,username,password)sleep(3)text=driver.find_element_by_id("spnUid").textassert (text=='username@126.com'),"用户名称不匹配,登录失败!"#括号里面的username记得改成你的真实用户名哈!
        # 关闭浏览器窗口
    finally:driver.quit()
if __name__ == '__main__':main()

selenium无法定位126邮箱相关推荐

  1. python+selenium自动登录126邮箱并发送邮件

    # 代码拿来就能使用,只需更改账号.密码和收件人邮箱:未封装import time from selenium import webdriver from selenium.webdriver.com ...

  2. python+selenium 登录126邮箱

    之前尝试用requests.post的办法登录126邮箱,但是126的邮箱在传递密码是是实时加密,没有解决掉实时加密的问题,因此失败: 最近在学习selenium,发现用selenium后登录126邮 ...

  3. 11.selenium登录126邮箱出现定位问题解决

    在用selenium登录126邮箱的时候会发现在定位到登录密码那里就会有出现问题了,一直定位不进去,接下来通过2个用例完成登录及发送邮件功能的实现方法 一.登录用例 在登录的时候会出现定位不到账号和密 ...

  4. 使用selenium登录126邮箱定位失败原因

    刚开始入手学习selenium登陆126邮箱愣是运行不成功,总是提醒定位失败,不管是用id,还是classname,还是classpath等等,都是一样的效果.然后就百度.搜到了答案 使用id定位 M ...

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

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

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

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

  7. selenium-动态id定位(126邮箱登录定位实例)

    126邮箱登录自动化实例,有两个注意点:1需要定位到iframe框架内,2id为动态需要使用其他方式进行定位 1 driver.switch_to.frame(driver.find_element_ ...

  8. python自动注册邮箱_python2+selenium+mail,自动登录126邮箱

    在进行登录126邮箱时有几个坑,要完美避过可以看一下下文,直接上代码: #encoding = utf-8 from selenium import webdriver import unittest ...

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

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

最新文章

  1. AI 一分钟 | 南京大学成立人工智能研究院;三星关联实体已收购 AI 搜索引擎创业公司Kngine的全部股份
  2. 【转】关于编译链接——gcc/g++
  3. uvalive5983(二分+dp)
  4. php两数相乘,php – 如何将数字相乘,直到达到一位数字并计算数字?
  5. mit景观生成技术_永远不会再为工作感到不知所措:如何使用MIT技术
  6. Makefile知识点总结:
  7. 理解Marx-4 马克思的第一次思想转变
  8. Ubuntu 下安装 GCC 的方法
  9. matlab语言常用算法程序集
  10. 解决手机端页面的鼠标点击出现蓝色背景
  11. python中的reshape是什么意思,Python的reshape的用法
  12. 合唱队形(NOIP)
  13. 360企业版的IT管理价值
  14. 人工智能ai思维_人工智能系统如何学习创造性思维
  15. HDOJ 1495 倒可乐(BFS)
  16. 架构师小跟班:推荐一款Java在线诊断工具,arthas入门及使用教程
  17. [WPF实践之路] 目录导航
  18. java socket 端口_Java Socket通信如何摆平自身端口问题
  19. 高等数学学习笔记——第三十四讲——函数的单调性与凹凸性(单调性)
  20. uniapp 封装导航栏

热门文章

  1. 软件测试——bug处理流程图,让你上班少走弯路
  2. slot在服务器哪个位置,(13)ceph osd down定位服务器slot
  3. word表格快速插入编号
  4. Pygame实现飞机小游戏
  5. 第四次网页前端培训(CSS常用属性与盒子模型)
  6. vue+element ui 小问号提示
  7. Linux 内核协议栈之TCP连接关闭
  8. 人工智能(4):模型评估
  9. 基于opencv的车道线识别(python)(极易实现)
  10. 关于window.close()不能关闭的问题解决