多表单切换

# 多表单切换
'''
    在 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() 回到最外层页面

 

posted @ 2020-02-15 21:46  gupanpan  阅读(155)  评论(0)    收藏  举报