python+selenium自动化写登录脚本时,弹出的第三方登录页面该如何定位元素?

我是一个自动化测试入门小白,在做一个百度页面的登录时,遇到了无法定位元素的情况,因为这个问题昨晚都失眠了一晚,希望大佬们难帮我解决一下这个问题如图,我是写百度首页-右上角的登录-选择QQ登录-在新弹出来的窗口进行了选择定位时,会提示无法找到元素,这是什么问题?我该怎么处理?

import time
def Baidu():
    try:
        browser=webdriver.Chrome()
        browser.get(url)
        wait=WebDriverWait(browser,10)
        #定位百度登陆按钮
        browser.find_element_by_xpath('//*[@id="u1"]/a[7]').click()
        time.sleep(5)
        #qq登陆
        browser.find_element_by_xpath('//*[@id="pass_phoenix_btn"]/ul/li[1]/a').click()
        #切换至qq登陆窗口
        time.sleep(5)
        browser.switch_to.window(browser.window_handles[1])
        #切换至账户密码框
        browser.switch_to.frame('ptlogin_iframe')
        #账户登陆按钮
        browser.find_element_by_xpath('//*[@id="switcher_plogin"]').click()
        
        user=browser.find_element_by_id('u')
        user.send_keys(账户)

        password=browser.find_element_by_id('p')
        password.send_keys(密码)
        browser.find_element_by_id('login_button').click()
        browser.switch_to.window(browser.window_handles[0])
        
    finally:
        browser.close()
Baidu()

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-15
要切换Iframe进行操作