一、如何判断元素是否在iframe中

  选中要操作的元素,通过下方的父节点查看是否存在iframe,存在则元素在iframe,需要切换至iframe中进行元素的操作

二、iframe切换方式一

  1.方式一通过以下三种方式进行切换:

  1.1 driver.switch_to.frame('frame_name')-----iframe的name或者id属性
  1.2 driver.switch_to.frame(1)-----iframe的索引
  1.3 driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0])----元素定位的方式进行切换
 举例:
  1.1 iframe的name或者id属性    
  通过网易163邮箱进行举例,登录页面在iframe中,对iframe中元素进行操作,必须切换到iframe页面,否则操作无效

  driver.switch_to.frame('x-URS-iframe1625470819264.4238')

   1.2 iframe的索引

      腾讯课堂网页点击登录,弹出使用QQ登录页面,该页面则是iframe页面且没有id和name属性,下面使用索引进行切换,

  下图中需要切换的iframe是页面第三个iframe,但是索引值是从0开始的,索引在传入索引值是2

      driver.switch_to.frame(2)

   1.3元素定位的方式进行切换

   腾讯课堂网页点击登录,弹出使用QQ登录页面xpath定位要操作的iframe,使用元素定位方式切换

   driver.switch_to.frame(driver.find_element_by_xpath('//div[@class="login-qq-iframe-wrap"]//iframe'))

三、iframe切换方式二      

  使用显性等待来切换至要操作的iframe  需要引入:

  from selenium.webdriver.support.wait import WebDriverWait
  from selenium.webdriver.support import expected_conditions as EC
  from selenium.webdriver.common.by import By
  使用元素定位方式定位到要操作的iframe,此处使用xpath并存储到一个变量里面
  loc = (By.XPATH,'//div[@class="login-qq-iframe-wrap"]//iframe')
  使用
frame_to_be_available_and_switch_to_it方法
  WebDriverWait(driver,20).until(EC.frame_to_be_available_and_switch_to_it(loc))

Web自动化之iframe切换的更多相关文章

  1. web自动化之iframe操作

    from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from seleni ...

  2. web自动化 -- 浏览器窗口切换

    切换浏览器窗口 示例: from time import sleep from selenium import webdriver from selenium.webdriver.support.wa ...

  3. 【Selenium03篇】python+selenium实现Web自动化:元素三类等待,多窗口切换,警告框处理,下拉框选择

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第三篇博 ...

  4. web自动化测试--iframe切换

    什么是iframe切换,我们在测试web网页过程中,可能会遇到一个网页中嵌套另一个网页的情况,如下图,就是一个ifame嵌套的例子 我们如何切换呢,别急,webdriver里有方法,可以切换到ifra ...

  5. python-web自动化-元素操作:windows窗口切换 / alert切换 / iframe切换

    1. windows窗口切换:切换到要操作的窗口 有多个窗口: 1. 触发新窗口的出现 2. 得知道新窗口是谁 -- 依据窗口的window_handle来识别窗口 3. 得到窗口的window_ha ...

  6. python selenium + web自动化,切换到新的窗口,元素定位不到?

    问题描述: 自动化由首页切换到分页面,打开了一个新的窗口,不过,定位不到这个窗口的元素,通过开发者工具是可以查到这个元素的 原因是: 因为窗口句柄还停留在上一个页面,所以导致无法定位元素.报错 &qu ...

  7. Selenium Web 自动化 - 项目实战(三)

    Selenium Web 自动化 - 项目实战(三) 2016-08-10 目录 1 关键字驱动概述2 框架更改总览3 框架更改详解  3.1 解析新增页面目录  3.2 解析新增测试用例目录  3. ...

  8. Web自动化框架LazyUI使用手册(1)--框架简介

    作者:cryanimal QQ:164166060 web端自动化简介 web端自动化,即通过自动化的方式,对Web页面施行一系列的仿鼠标键盘操作,以达到对Web页面的功能进行自动化测试的目的. 其一 ...

  9. WEB自动化(Python+selenium)的API

    在做Web自动化过程中,汇总了Python+selenium的API相关方法,给公司里的同事做了第二次培训,分享给大家                                         ...

随机推荐

  1. x小结:certutil -hashfile D:\1.exe MD5

    在Win7上,MD5不要使用小写,在Win10上没有这个问题 x小结:certutil -hashfile D:\1.exe MD5certutil -hashfile D:\1.exe SHA1ce ...

  2. 2020 Kali Linux Zenmap 安装(可视化界面)

    跟着教程学Kali Linux,我安装的2020版的,发现Zemap没被预装. 1.下载 zenmap https://nmap.org/download.html 2.rpm转deb 2020 Ka ...

  3. jmeter 通过CSV Data Set Config控件参数化

    CSV Data Set Config控件配置如下: 被导入的.csv 文件内容如下 用excel打开如下 设置中url2对应:cn.toursforfun.com 和 www.163.com url ...

  4. 052.Python前端Django框架路由层和视图层

    一.路由层(URLconf) 1.1 路由层简单配置 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Dj ...

  5. 10.9 ping:测试主机之间网络的连通性

    ping命令 可用于测试主机之间网络的连通性.执行ping命令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而可得知该主机运作正常.     ping命令 ...

  6. 关于Linux的一些基础命令

    今天学习scala语言,在linux系统上运行,发现对Linux的命令不太熟悉,为了熟悉掌握,也便于查询,这些命令主要是为了收藏备用,,希望能帮助到大家 linux20个常用命令是: 1.显示日期的指 ...

  7. Linux 中的 守护进程

    什么是守护进程 脱离控制终端的,运行于后端的进程,由系统管理的,按计划自动启动/停止/重启,用以执行特定的任务. 为什么要有守护进程? 在某些需求场景下,我们希望某项系统任务能够按计划按预期,始终/自 ...

  8. Minkowski修剪

    Minkowski修剪 Minkowski修剪 Class MinkowskiEngine.MinkowskiPruning 从MinkowskiEngine.SparseTensor中删除指定的坐标 ...

  9. TVM vs TensorRT比较

    TVM vs TensorRT比较 如果理解正确的话,TensorRT和TVM会加快预测速度. TensorRT优化预测GPU和TVM优化预测几乎所有平台支持GPU,ARM,Mobile... 两者在 ...

  10. Nucleus-SE迁移:未实现的设施和兼容性

    Nucleus-SE迁移:未实现的设施和兼容性 Nucleus SE migration: Unimplemented facilities and compatibility Nucleus SE的 ...