¿Qué es el cambio de iframe? Podemos encontrar la situación de anidar otra página web en una página web durante la prueba de páginas web, como se muestra en la siguiente figura, es un ejemplo de anidamiento ifame
Cómo cambiamos, no te preocupes, hay un método en webdriver, puedes cambiar a iframe
1. 方法 一 : driver.switch_to.frame (iframe_name)
iframe_name: 1. Puede ser el atributo de nombre
Objeto 2.webElement (expresión by.xpth)
3. Valor del subíndice
#iframe switch
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import unknown_conditions
as EC
from selenium.webdriver.common.by import By
driver = webdriver.Chrome ()
driver.get ("https : //ke.qq.com/ ")
driver.implicitly_wait (30)
driver.find_element_by_id ('js_login'). haga clic en () # Busque el botón de inicio de sesión y haga clic en
loc = (By.XPATH, '// i [@class = "icon-font i-qq"] ')
WebDriverWait (controlador, 10) .until (EC.visibility_of_element_located (loc))
driver.find_element_by_xpath (' // i [@ class = "icon-font i-qq"] ' ) .click () # clickqqlogin
# Operar a la página con iframe, luego encontrar el elemento en el iframe y operar
loc = (By.NAME, "login_frame_qq")
WebDriverWait (driver, 10) .until (EC.visibilidad_de_elemento_ubicado (loc))
driver.switch_to.frame ("login_frame_qq")
driver.find_element_by_id ("switcher_plogin"). haga clic en () # Haga clic en la contraseña de la cuenta para iniciar sesión
方法 二 : frame_to_be_available_and_switch_to_it (iframe_name)
WebDriverWait (controlador, 10) .until (EC.frame_to_be_available_and_switch_to_it ('login_frame_qq'))