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好友

 

 

粤ICP备19116230号
友情链接: 码农藏书阁 天天链