Selenium Webdriver 3.X源码分析之switch_to.py_window

 

Selenium Webdriver 3.X源码分析之switch_to.py_python_02

> Selenium Webdriver 3.X源码分析系列第15篇,该系列原则上会将整个源码分享一遍

在基于selenium webdriver + python进行web自动化测试时,经常要进行windows或frame的切换,在面对windows或frame切换时,很多人并不理解其具体的原由,或是并未掌握如何进行切换。

下面我们就selenium webdriver python端api源码进行分析说明,让大家进一步了解和掌握其使用方法,常用的切换api如下:

1. Frame切换:switch_to.frame()

2. 多窗口切换:switch_to.window()

先在visual studio code对应的源码的结构:

Selenium Webdriver 3.X源码分析之switch_to.py_python_03

在switch_to.py主要提供了以下几个类、方法:

  1. SwitchTo类 实现了frame切换、windows切换能力,需要将webdriver对象传给该类型
  2. default_content SwitchTo类成员,提供了切换至默认frame的能力
  3. frame  SwitchTo类成员,提供了切换至指定frame的能力,可以用索引、frame名称或webelement对象进行切换
  4. parent_frame SwitchTo类成员,提供了切换至当前frame的父frame的能力,如果当前frame是最顶层了,则停留在当前frame环境下。
  5. Selenium Webdriver 3.X源码分析之switch_to.py_大数据_04

5. widow SwitchTo类成员,提供了切换至指定窗口的能力,可以通过指定window名称或handle(句柄)切换至指定的窗口

Selenium Webdriver 3.X源码分析之switch_to.py_javascript_05

几个关键点需要注意的是:

  1. 理解Frame层级的概念
  2. 理解default content, 默认Frame
  3. 理解handle句柄的概念

 

 扫一扫关注开源优测公众号,原创文章首发平台

Selenium Webdriver 3.X源码分析之switch_to.py_大数据_06

在公众号里回复一下关键字获取对应的系列文章

物联网

appium

大数据测试

RobotFramework

Python

自动驾驶

jmeter

selenium

jenkins

接口测试