实现QQ网站登陆之后,等等页面加载完毕之后,截图
查看网页登陆界面是在另外发frame里面,所以需要切换到该iframe之后在操作
代码如下:
如果出现验证码提示,建议可以使用其他邮箱做测试。
from selenium import webdriver
import time
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get("https://mail.qq.com/cgi-bin/loginpage")
# 最大化网站
driver.minimize_window()
# 切换到登陆界面frame
login_frame=driver.find_element_by_id("login_frame")
driver.switch_to.frame(login_frame)
# 账号和密码元素的classname是一样的
all_elements =driver.find_elements_by_class_name("inputstyle")
all_elements[0].click()
all_elements[0].send_keys("这里输入你的账号")
all_elements[1].click()
all_elements[1].send_keys("这里输入你的密码")
# 勾选下次自动登陆
driver.find_element_by_id('p_low_login_enable').click()
# 点击登陆
driver.find_element_by_id('login_button').click()
# 截图保存
driver.get_screenshot_as_file("D:\\book\selenium.png")
# 等待登录之后页面的QQ邮箱图标加载出来
try:
# 最多等待10s,等ID 元素出现
WebDriverWait(driver,10).until(EC.presence_of_element_located(By.CLASS_NAME,"maillogo"))
except:
# 如果异常就退出
driver.quit()
# 截图保存
driver.get_screenshot_as_file("D:\\book\selenium1.png")
# 退出浏览器
driver.quit()
网友评论