37,743
社区成员




driver.switch_to.frame('frame_tips')
是定位不了的,为啥呢?
1、你要先定位到登录后整个弹窗,然后在弹窗下找这个frame就可以了,把这句改为如下:
driver.switch_to.frame(driver.find_element_by_class_name("popup__bd").find_element_by_id("frame_tips"))
2、你上边所有的代码太臃肿了,我给你改下,点击图像登录全部代码如下,如果可以记得给分哦:
# -*- coding:utf-8 -*-
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("https://y.qq.com/")
time.sleep(1)
driver.maximize_window()
login = driver.find_element_by_link_text("登录")
login.click()
time.sleep(2)
driver.switch_to.frame(driver.find_element_by_class_name("popup__bd").find_element_by_id("frame_tips")) # 切换frame到登录弹窗
time.sleep(0.5)
driver.switch_to.frame(driver.find_element_by_id("ptlogin_iframe")) # 切换frame到登录弹窗下的图标登录
driver.find_element_by_xpath("html/body/div[1]/div[4]/div[8]/div/a/span[4]").click() # 点击qq图标登录
time.sleep(2)
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://y.qq.com/')
driver.maximize_window()
login_tag=driver.find_element_by_xpath('/html/body/div[1]/div/div[2]/span/a[2]')
login_tag.click()
driver.switch_to.frame('frame_tips')
driver.switch_to.frame('ptlogin_iframe')
log_tag=driver.find_element_by_xpath('/html/body/div[1]/div[4]/div[8]/div/a/span[4]')