《selenium2 python 自动化测试实战》(9)——切换窗口

有时候我们点击按钮后页面会跳转到新的窗口,我们需要到新的窗口中去进行接下来的操作,这时候就需要切换窗口的操作,我们根据句柄(handle)来操作窗口之间的切换,看代码:

# coding: utf-8from selenium import webdriverfrom time import sleep

driver = webdriver.Firefox()
driver.get("http://www.jrj.com.cn/")
driver.find_element_by_xpath("html/body/div[11]/div[1]/div/div[1]/p/a[5]").click()
current_handle = driver.current_window_handle
all_handles = driver.window_handlesfor i in all_handles:    if current_handle != i:
        driver.switch_to.window(i)
        sleep(2)
        driver.find_element_by_xpath("html/body/div[10]/div[1]/div/dl/dt[1]/div[1]/p/a[2]").click()

句柄的操作主要有两个:

  • 第一个:获取当前窗口句柄:

    driver.current_window_handle
  • 第二个:获取全部窗口句柄:
    driver.window_handles
  • 切换句柄的操作为:
    driver.switch_to.window()

    这里我们通过循环所有句柄,当判断到不是当前窗口句柄的时候,就进行切换句柄(窗口)的操作。

微信公众号搜索“自动化测试实战”或扫描下方二维码添加关注~~~

时间: 2024-10-09 04:35:42

《selenium2 python 自动化测试实战》(9)——切换窗口的相关文章

Selenium2+Python自动化测试实战

本人在网上查找了很多做自动化的教程和实例,偶然的一个机会接触到了selenium,觉得非常好用.后来就在网上查阅各种selenium的教程,但是网上的东西真的是太多了,以至于很多东西参考完后无法系统的学习和应用,有一次在网上随意搜索,找到了-虫师-写的<Selenium2自动化测试实战基于Python语言>,觉得真心不错,内容也很调理,为了方便自己学习和知识的整理,就把其中虫师编写的自动化项目教程整理一下,有兴趣的可以去参看虫师的博客http://www.cnblogs.com/fnng/ 以

《selenium2 python 自动化测试实战》(5)——键盘事件

键盘事件,就是键盘上的一些操作,比如Ctrl +C,Ctrl+V,Ctrl+X等. 对键盘的操作需要导入另一个键盘的库: from selenium.webdriver.common.keys import Keys 举个例子,你要在搜索框输入"自动化测试",但是现在又想搜"自动化测",就是删掉一个字,我们知道,就是摁一下键盘上的Backspace键就可以了,这时候你就需要键盘操作了: driver.find_element_by_xpath("xpath

《selenium2 python 自动化测试实战》(8)——定位iframe

我们来看一段最早的代码: # coding: utf-8 from selenium import webdriverfrom time import sleep driver = webdriver.Firefox() driver.get("http://blog.hexun.com/") driver.find_element_by_id("read_btn").click() driver.maximize_window() sleep(3)driver.f

《selenium2 python 自动化测试实战》(11)——selenium安装版本

先和大家说一下selenium环境的问题,大家可以在cmd里先看一下自己的selenium版本: 回车,就可以安装了. 本来想和大家说如何跳过验证码进行登录的,结果好多朋友加我问我环境配置的问题,所以觉得还是和大家详细的说明一下,我也自己做一下记录.大家可以提前看一下跳过验证码登录的问题.大家需要下载fiddler,一个很好用的工具,如果你在做手机App测试,应该很了解fiddler,因为需要用fiddler配置手机代理. 微信公众号搜索"自动化测试实战"或扫描下方二维码添加关注~~~

《selenium2 python 自动化测试实战》(13)——上传文件

看代码: # coding: utf-8 from selenium import webdriver from time import sleep driver = webdriver.Firefox() driver.get("https://www.cnblogs.com") driver.add_cookie({'name': '.CNBlogsCookie', 'value': 'F956F323DFA5C31BE489C0730C7D891', 'domain': '.cn

《selenium2 python 自动化测试实战》(21)——unittest单元测试框架解析

unittest是展开自动化测试的基础--这个框架很重要! 我们先自己写一个测试类: 1.被测试类 Widthget.py: # coding: utf-8 class Widthget:    def __init__(self, size=(10, 10)):        self._size = size    def getSize(self):        return self._size        def reSize(self, width, height):      

Selenium2 Python 自动化测试实战学习笔记(七)

Selenium  Grid2 利用Grid可以在不同的主机上建立主节点(hub)和分支节点(node).使主节点上的测试用例在不同的分支节点上运行,可以搭建不同的环境,从而使一份测试用例完成在不同环境下的验证.Selenium Grid2已经集成到selenium server中了(selenium-server-stanalon-xxx.jar包中). 9.1 Selenium2工作原理 Selenium2 中因为使用的WebDriver,这个技术不是靠js 驱动的,而是直接调用浏览器的原生

Selenium2 Python 自动化测试实战学习笔记(三)

4.9 多表单切换 在web应用中经常会遇到frame嵌套页面的应用,webdriver每次只能在一个页面上识别元素,对于frame嵌套的页面上的元素,直接定位是定位不到的,这时候就需要switch_to_frame()方法将当前定位的主体切换到frame里.Frame.htm:frame.htm, 直接定位百度的输入框一定会报找不到元素的错误.那么可以使用switch_to_frame()先找到frame.html 中的<iframe>标签,然后再定位百度输入框.switch_to_fram

Selenium2 Python 自动化测试实战学习笔记(六)

1.1 创建定时任务 为了让自动化测试"自动化"起来,现在我们来创建定时任务,使自动化测试脚本在指定的时间自动化运行.创建定时任务的方法有很多,比如,我们可以写一段程序让其在指定的时间运行all_test.py 文件,或者使用系统的定时任务功能在指定的时间运行all_test.py文件. 在python的os模块中提供了system()用来执行系统命令.比如要执行:UnitTest\Project\run_all.py 可以这样实现:start_run.py #coding=utf-8