selenium python浏览器多窗口处理代码示例

yipeiwu_com7年前Python基础

本文主要研究的是selenium python浏览器多窗口处理的相关内容,分享了操作实例代码,具体如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-
__author__ = 'zuoanvip'
#在测试过程中有时候会遇到出现多个浏览器窗口的情况,这时候我们可以通过窗口的句柄来操作不同窗口的元素
from selenium import webdriver
import os
import time

driver =webdriver.Firefox()
driver.get('http://www.baidu.com')


#获得当前窗口的句柄
nowwhandle = driver.current_window_handle

#打开注册新窗口
driver.find_element_by_name('tg_reg').click()

#获取所有窗口的句柄
allhandles = driver.window_handles

#循环判断窗口是否为当前窗口

for handle in allhandles:
  if handle != nowwhandle:
    driver.switch_to_window(handle)
    print 'Now register window!'
    #切换到邮箱注册标签
    driver.find_element_by_id('mailRegTab').click()
    time.sleep(5)
    driver.close()

#返回原先到的窗口
driver.switch_to_window(nowwhandle)

driver.find_element_by_id('kw').send_keys(u'注册成功')
driver.quit()

执行过程为:首先通过nowhandle获得当前窗口的句柄,随后打开注册窗口;通过allhandles获得所有窗口的句柄;对句柄进行循环遍历;判断窗口是否为nowhandle,如果不是则获得当前窗口的句柄,对当前页面 的元素进行操作,最后返回nowhandle

总结

以上就是本文关于selenium python浏览器多窗口处理代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

对Django项目中的ORM映射与模糊查询的使用详解

ORM映射 什么是ORM映射?在笔者认为就是对SQL语句的封装,所写语句与SQL对应语句含义相同,使开发更加简单方便,不过也是存在弊端的,使程序运行效率下降。例如: UserInf...

Django xadmin开启搜索功能的实现

应用目录下adminx.py class EmailVerifyRecordAdmin(object): search_fields = ['code','email','sen...

Python中的并发处理之asyncio包使用的详解

导语:本文章记录了本人在学习Python基础之控制流程篇的重点知识及个人心得,打算入门Python的朋友们可以来一起学习并交流。 本文重点: 1、了解asyncio包的功能和使用方法;...

10款最好的Python开发编辑器

10款最好的Python开发编辑器

Python 非常易学,强大的编程语言。Python 包括高效高级的数据结构,提供简单且高效的面向对象编程。 Python 的学习过程少不了 IDE 或者代码编辑器,或者集成的开发编辑...

对Django中static(静态)文件详解以及{% static %}标签的使用方法

在一个网页中,不仅仅只有一个html骨架,还需要css样式文件,js执行文件以及一些图片等。因此在DTL中加载静态文件是一个必须要解决的问题。在DTL中,使用static标签来加载静态文...