前言
我在模拟登录qq的时候,发现无论如何都定位不了qq的“账号密码登录”,怎么都进不去qq的登录页面,如下图所示
分析
- 打开 https://qzone.qq.com/
- 然后点击二维码登录这块,背景出现了灰色,定位到iframe位置的时候,就说明iframe区域是整个登录区域
- 左下角就是显示的iframe的一些属性,后面切换iframe的时候会用到这些属性
切换iframe
- 由于登录按钮是在 iframe 上,所以第一步需要把定位器切换到 iframe上
- iframe有专门的切换方法,switch_to_frame()
#coding:utf-8
import time
from selenium import webdriver
#=============================chromedriver.exe的位置===================================
driver = webdriver.Chrome('C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
driver.get("https://qzone.qq.com/")
driver.implicitly_wait(10)
#====================此处是我用过的定位登录页面,然而没有成功=============================
#driver.find_element_by_xpath('//*div[@class="bottom hide]/a[@id="switcher_plogin"]').click()
#=============================切换到iframe上面=========================================
driver.switch_to_frame('login_frame')
#============================切换到登录页面后就常规登录就行=============================
driver.find_element_by_id('switcher_plogin').click()
driver.find_element_by_id('u').clear()
driver.find_element_by_id('u').send_keys('12345678')
driver.find_element_by_id('p').clear()
driver.find_element_by_id('p').send_keys('12345678')
driver.find_element_by_id("login_button").click()
time.sleep(5)
#后面验证码手动操作