第一种方法:

使用场景:

打开多个窗口,需要定位到新打开的窗口

使用方法:

  1. # 获取打开的多个窗口句柄
    windows = driver.window_handles
    # 切换到当前最新打开的窗口
    driver.switch_to.window(windows[-1])

举例说明:

  1. # _._ coding:utf-8 _._
  2.  
  3. """
  4. :author: 花花测试
  5. :time: 2017.05.03
  6. :content: 使用第一种方法切换浏览器
  7. """
  8.  
  9. from selenium import webdriver
  10. import time
  11.  
  12. # 打开课工场网站主页【第一个窗口】
  13. driver = webdriver.Chrome()
  14. driver.get('http://www.kgc.cn/')
  15. driver.maximize_window()
  16.  
  17. # 点击全部课程,进入课程库【第二个窗口】
  18. driver.find_element_by_link_text('全部课程').click()
  19. time.sleep(3)
  20.  
  21. # 使用第一种方法切换浏览器【切换到第二个窗口】
  22. windows = driver.window_handles
  23. driver.switch_to.window(windows[-1])
  24. time.sleep(3)
  25.  
  26. # 点击课程库中的某个课程,进入课程详情界面【在第二个窗口页面进行元素点击操作,来判断窗口是否切换成功】
  27. driver.find_element_by_xpath('//*[@id="yw1"]/ul/li[2]').click()
  28. time.sleep(3)
  29.  
  30. # 关闭浏览器
  31. driver.quit()
  32. print('测试通过')

第二种方法:

使用场景:

打开两个窗口,需要定位到新打开的窗口

使用方法:

  1. # 获得打开的第一个窗口句柄
    window_1 = driver.current_window_handle
    # 获得打开的所有的窗口句柄
    windows = driver.window_handles
    # 切换到最新的窗口
    for current_window in windows:
    if current_window != window_1:
    driver.switch_to.window(current_window)

举例说明:

  1.  
  1. # _._ coding:utf-8 _._
  2.  
  3. """
  4. :author: 花花测试
  5. :time: 2017.05.03
  6. :content: 使用第二种方法切换浏览器
  7. """
  8.  
  9. from selenium import webdriver
  10. import time
  11.  
  12. from selenium import webdriver
  13. import time
  14.  
  15. # 打开课工场网站主页【第一个窗口】
  16. driver = webdriver.Chrome()
  17. driver.get('http://www.kgc.cn/')
  18. driver.maximize_window()
  19.  
  20. # 点击全部课程,进入课程库【第二个窗口】
  21. driver.find_element_by_link_text('全部课程').click()
  22. time.sleep(3)
  23.  
  24. # 使用第二种方法切换浏览器【切换到第二个窗口】
  25. window_1 = driver.current_window_handle
  26. windows = driver.window_handles
  27. for current_window in windows:
  28. if current_window != window_1:
  29. driver.switch_to.window(current_window)
  30. time.sleep(3)
  31.  
  32. # 点击课程库中的某个课程,进入课程详情界面【在第二个窗口页面进行元素点击操作,来判断窗口是否切换成功】
  33. driver.find_element_by_xpath('//*[@id="yw1"]/ul/li[2]').click()
  34. time.sleep(3)
  35.  
  36. # 关闭浏览器
  37. driver.quit()
  38. print('测试通过')
  1.  
  1. 两种方法的区别:
    1、第一种方法比较简单,能提升整体代码的性能
    2、第二种方法是大家最常用的方法,比较容易理解

说明:

1、我的脚本都是以课工场为例,如果有什么不明白的地方,欢迎大家留言,我看的话会及时给大家解答

2、辛苦原创,转载请注明出处

  1.  

python3 selenium 切换窗口的几种方法的更多相关文章

  1. selenium 切换窗口的几种方法

    第一种方法: 使用场景: 打开多个窗口,需要定位到新打开的窗口 使用方法: # 获取打开的多个窗口句柄 windows = driver.window_handles # 切换到当前最新打开的窗口 d ...

  2. Python3 Selenium多窗口切换

    Python3 Selenium多窗口切换 以腾讯网(http://www.qq.com/)为例,打开腾讯网,点击新闻,打开腾讯新闻,点击新闻中第一个新闻链接. 在WebDriver中封装了获取当前窗 ...

  3. python3 打开页面后多窗口处理三种方法

    多窗口处理三种方法 导包,实例化浏览器from selenium import webdriver fx=webdriver.Firefox()方法一fx.switch_to.window(fx.wi ...

  4. jquery mobile切换页面的几种方法

    jquery mobile切换页面的几种方法 - 不厚道青蛙之焦油潭 - 博客频道 - CSDN.NET jquery mobile切换页面的几种方法 分类: phonegap html5 2012- ...

  5. Windows 10 应用创建模糊背景窗口的三种方法

    原文 Windows 10 应用创建模糊背景窗口的三种方法 现代的操作系统中创建一张图片的高斯模糊效果非常容易,不过如果要在窗口中获得模糊支持就需要操作系统的原生支持了.iOS/Mac 和 Windo ...

  6. selenium切换窗口

    在做网页自动化测试的时候,难免会打开很多个网页,那么,如何在多个窗口之间切换呢? 获取窗口的唯一标识用句柄(handle)表示,因此只需要切换句柄,就可以灵活的在各窗口之间切换. 下面介绍几个方法 c ...

  7. OD 实验(四) - 去除 NAG 窗口的几种方法

    程序: 运行 弹出一个窗口,说要注册 点击确定,到主窗口 关闭主窗口 然后弹出提醒注册的对话框 逆向程序 用 OD 打开程序 GetModuleHandleA 获取程序模块的句柄,程序在内存中的基址 ...

  8. Response.Redirect 打开新窗口的两种方法

    一般情况下,Response.Redirect 方法是在服务器端进行转向,因此,除非使用 Response.Write("<script>window.location='htt ...

  9. 多测师讲解selenium ——切换窗口——打印句柄_高级讲师肖sir

    (一)同一个窗口打开两个浏览器 from selenium import webdriverfrom time import sleepdrvier=webdriver.Chrome()url='ht ...

随机推荐

  1. 使用 POJO 对象绑定请求参数

    概述 Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配,自动为该对象填充属性值并且支持级联属性.这一特性在日常开发过程中使用频率比较高,开发效率也高,本文主要对 POJO 对象绑定 ...

  2. linux vi hjkl由来

    很远原因来自历史 I was reading about vim the other day and found out why it used hjkl keys as arrow keys. Wh ...

  3. win10+vs2010+cuda7.5安装及配置

    http://blog.csdn.net/u011821462/article/details/50145221 这篇博客已经写得很详细了.

  4. 解决mysql启动时报The server quit without updating PID file 的错误(转)

    1.一般是权限问题,把用户和组改为mysql就可以了. chown -R mysql:mysql  /var/lib/mysql 2.在启动mysql时报下列错误 [root@mysqld2 ~]#  ...

  5. mac开发环境配置

    折腾了好几天了,终于安装一部分了,mac装的win10,太占空间了,看到学习资源使用的工具,自己搜了一下安装了,在学习使用git的时候,都说mac比win好用多了,我tm为啥抱着mac装win费劲呢! ...

  6. Omi官方插件系列 - omi-transform介绍

    原文链接 - https://github.com/AlloyTeam/omi/tree/master/tutorial 写在前面 Omi框架正式发布了omi-transform作为Omi组件化开发特 ...

  7. Codeforces Round #384 (Div. 2).C

    C. Vladik and fractions time limit per test 1 second memory limit per test 256 megabytes input stand ...

  8. 使用SharedPreferences存储用户配置信息

    用SharedPreferences来保存用户的基本配置信息非常的方便,实现起来也很容易:以下是一个简单的例子: 效果截图:    主要代码: public class MainActivity ex ...

  9. 使用U盘安装ubuntu 12.04(使用大白菜u盘启动工具)

    家里有个u盘启动盘,用大白菜U盘工具做的. 1.把iso文件放到u盘里,把ISO文件中的casper目录下的vmlinuz和initrd拷贝到u盘根目录下: 2.修改启动顺序,选u盘启动: 3.启动时 ...

  10. 在应用程序中使用Xml文件

    用于操作Xml的文档主要有XmlNode.XmlDocument.XmlComment.XmlElement.XmlAttribute.XmlText.XmlNodeList 下面用一段代码来具体说明 ...