zoukankan      html  css  js  c++  java
  • selenium2+python3登录163邮箱

    首先查看页面的整个登录流程:

    打开mail.163.com→点击邮箱账号登录→账号输入框→密码输入框→登录

    一、单一流程实现:打开网页,找到邮箱账号登录,输入账号密码,登录

    # 导入webdriver驱动
    from selenium import webdriver
    from time import ctime
    # 新建火狐浏览器驱动
    dr = webdriver.Firefox()
    dr.get('https://mail.163.com')
    # 点击邮箱账号登录,使用xpath定位
    dr.find_element_by_xpath('//*[@id="lbNormal"]').click()
    print(ctime(), '已点击邮箱账号登录')
    # 接下来实现账号密码登录,同样需要定位,但是发现每次账号密码都找不到Can't find element从网上查找资料才知道这块是作了表单设计,需要切换到frame定位。
    # 同样直接在浏览器查看元素也能发现账号密码输入框其实在frame内

    # 那就先定位frame,然后查看frame的属性发现它的id是个小数,所以应该是作了随机值可变的,不好定位。但是可以发现frame的父元素div的属性是固定的,通过div找frame

    dl_frame = dr.find_element_by_xpath('//*[@id="loginDiv"]/iframe')
    # 切换到frame
    dr.switch_to.frame(dl_frame)

    #下面开始输入账号和密码

    dr.find_element_by_name('email').clear()
    dr.find_element_by_name('email').send_keys('**zhanghao**')
    dr.find_element_by_name('password').clear()
    dr.find_element_by_name('password').send_keys('***mima***')

    # 然后点击登录(登录按钮也是在这个frame下)

    dr.find_element_by_css_selector('#dologin').click()

    # 登陆后切换表单到主页面

    dr.switch_to.default_content()

    # 登陆后打印页面title

    print('当前页面标题:'dr.title)

    执行报错:

    才发现div下面的frame是iframe,更改后执行:

    到目前,单线登录完成。


    
    
    
  • 相关阅读:
    K8S 本地 配置 Local PV 实践
    Filebeat 收集K8S 日志,生产环境实践
    K8S 上部署 Redis-cluster 三主三从 集群
    Kubernetes 用户流量接入方案
    给Nginx配置日志格式和调整日期格式
    唇亡齿寒,运维与安全
    Nginx记录用户请求Header到access log
    Kubernetes中利用Kubectl set 让Deployment更新镜像
    故障管理:故障定级和定责
    使用 Elastic 技术栈构建 Kubernetes全栈监控
  • 原文地址:https://www.cnblogs.com/wjlv/p/10583257.html
Copyright © 2011-2022 走看看