使用selenium登陆QQ邮箱

代码部分

import time

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 启动浏览器
driver = webdriver.Chrome()

try:
    # 打开 QQ 邮箱页面
    driver.get("https://mail.qq.com")
    print("打开QQ邮箱页面成功!")
    # 设置显式等待,超时时间为30秒
    wait = WebDriverWait(driver, 30)
    # 切换到二维码框的 iframe
    driver.switch_to.frame(1)
    driver.switch_to.frame("ptlogin_iframe")
    print("成功切换到二维码框的 iframe!")
    #看页面是否加载完整!就是看二维码是否可见
    # 等待元素可见
    element_erweima = wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@id="qrlogin_img"]')))
    print("二维码可见,页面加载完成!")

    # 切回到主页面
    driver.switch_to.default_content()
    print("切回到主页面")
    # 切换到密码登陆框的 iframe
    driver.switch_to.frame(1)
    driver.switch_to.frame("ptlogin_iframe")
    print("成功切换到密码登陆框的 iframe!")
    # 点击密码登陆按钮
    button = driver.find_element(By.XPATH, '//*[@id="switcher_plogin"]')
    button.click()
    print("成功点击密码登陆按钮!")
    # 切回到主页面
    driver.switch_to.default_content()
    print("切回到主页面")
    # 切换到账号密码框的 iframe
    driver.switch_to.frame(1)
    driver.switch_to.frame("ptlogin_iframe")
    print("成功切换到账号密码框的 iframe")
    # 输入账号
    email_input = driver.find_element(By.XPATH, '//*[@id="u"]')
    email_input.send_keys("3221231187")
    # 输入密码
    password_input = driver.find_element(By.ID, "p")
    password_input.send_keys("13302775336Ma.")
    time.sleep(5)
    print("账号密码已输入!")
    # 点击登录按钮
    login_button = driver.find_element(By.ID, "login_button")
    login_button.click()
    print("切换人工!")
    # 记录初始 URL
    initial_url = driver.current_url
    # # 使用显示等待,判断元素是否“过时”,即页面刷新后该元素消失
    # wait.until(EC.staleness_of(login_button))
    # print("登录按钮已过时!页面正在刷新")
    # 设置显式等待
    wait = WebDriverWait(driver, 180)
    # 使用显示等待,等待页面 URL 发生变化
    wait.until(EC.url_changes(initial_url))
    print("页面刷新成功!")
    time.sleep(30)
    print("登录成功!")

finally:
    # 关闭浏览器
    driver.quit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值