zoukankan      html  css  js  c++  java
  • python+selenium自动登录163邮箱

    尝试登录163邮箱,发现使用xpath定位到的账号输入框id每次都有变化。网上查了资料才知道这里用到了表单。

    然后也还是遇到了坑。下面贴源码

    # 导入webdriverApi
    from selenium import webdriver
    from time import sleep
    # 新建驱动器
    dr = webdriver.Firefox()
    dr.get('http://mail.163.com')
    # 隐式等待10s,等待页面上的所有元素都加载出来后再操作
    dr.implicitly_wait(10)
    # 找到账号所在frame,也可以直接定位第几个iframe,dr.switch_to.frame(0)这里是第一个,打开F2搜索即可
    ifra = dr.find_element_by_css_selector('div.loginUrs>iframe')
    # 切换到账号所在frame
    dr.switch_to.frame(ifra)
    dr.implicitly_wait(5)
    # 查找账号输入框,其实可以更简单点直接使用名称by_name即可(email,password)
    account_input = dr.find_element_by_css_selector('.j-inputtext.dlemail')
    passwd_input = dr.find_element_by_css_selector('.j-inputtext.dlpwd')
    account_input.clear()
    account_input.send_keys('zhanghao***')
    passwd_input.clear()
    passwd_input.send_keys('*mima*****')
    # 密码直接提交无法登录
    # passwd_input.submit()
    dr.find_element_by_css_selector('#dologin').click()
    print('登录成功')
    sleep(5)
    # 切换到顶级页面
    dr.switch_to.default_content()

    这边之所以先定位到frame是因为网上说的使用id定位不好使

     switch_to.frame('x-URS-iframe')

    因为现在加了随机值:

  • 相关阅读:
    java 28
    java 28
    java 27
    java 27
    java 27
    java 27
    java 27
    java 27
    java 27
    java 27
  • 原文地址:https://www.cnblogs.com/wjlv/p/10574962.html
Copyright © 2011-2022 走看看