多表单切换
# 多表单切换
'''
在 Web 应用中,经常会遇到 frame/iframe 表单嵌套页面的应用,WebDriver 只能在一个页面上对
元素进行识别和定位,无法直接定位 frame/iframe 表单内嵌页面上的元素
这时需要通过 switch_to.frame() 方法切换表单
switch_to.frame() 默认可以直接对表单的 id 或 name 属性传参,因而可以定位元素对象。
本例的 id 后半部分的数字 是随机数字,在CSS 方法中,可以通过 ^= 匹配 id 属性开头的元素
'''
from time import sleep from selenium import webdriver driver = webdriver.Firefox() driver.get("http://www.126.com") sleep(2) driver.find_element_by_id("lbNormal").click() loginFrame = driver.find_element_by_css_selector('iframe[id^="x-URS-iframe"]') driver.switch_to.frame(loginFrame) driver.find_element_by_name("email").send_keys("gupan_1311") driver.find_element_by_name("password").send_keys("flzx3000inch") driver.find_element_by_id("dologin").click() sleep(2) driver.switch_to_default_content() driver.find_element_by_link_text("退出").click() driver.quit() # switch_to.default_content() 回到最外层页面
浙公网安备 33010602011771号