selenium对话框窗口API
有些Web应用程序有多个框架或多个窗口。WebDriver支持使用“switchto”方法在命名窗口之间移动
1,switch_to.frame()
进入到指定的frame或ifrmae,操作完后,通常要用switch_to.parent_frame()退到父frmae
2,switch_to.alert
处理alert弹出框
3,window_handles
获取窗口句柄,如果有多个窗口,返回值是一个列表
4,switch_to.window()
进入到指定的窗口
例子:
# -*- coding: utf-8 -*-
from selenium import webdriver
import time
from selenium.webdriver.support.ui import Select
driver = webdriver.Chrome()
time.sleep(2)
# 打开网址
driver.get('http://www.sterson.com.cn/test')
h1 = driver.current_window_handle
time.sleep(2)
driver.find_element_by_link_text('李老道自学网').click()
time.sleep(2)
# 多窗口处理
# 通过返回的窗口下标定位到之前的页面
h2 = driver.window_handles[0]
driver.switch_to.window(h2)
h3 = driver.window_handles[1]
driver.switch_to.window(h3)
# 通过循环并判断是否是之前的窗口句柄
for h2 in driver.window_handles:
if h2 == h1:
driver.switch_to.window(h2)
time.sleep(2)
# iframe 处理
driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0])
task_name = driver.find_element_by_id("task_name")
task_name.send_keys(u'测试的任务')
time.sleep(2)
# 退出iframe
driver.switch_to.default_content()
task_name = driver.find_element_by_id("task_name")
task_name.send_keys(u'测试的任务2')
# 处理弹出框
driver.find_element_by_name("submit").click()
time.sleep(1)
alert = driver.switch_to.alert
alert.dismiss()
time.sleep(2)
该文章对你有帮助吗,求分享转发: 分享到QQ空间 分享给QQ好友