python+selenium定位iframe

定位iframe

# 1.有id,并且唯一,直接写id
driver.switch_to_frame("xxx")
driver.switch_to.frame("xxx")

# 2.有name,并且唯一,直接写name
driver.switch_to_frame("xxxx")
driver.switch_to.frame("xxxx")

# 3.无id,无name,先定位iframe元素
iframe = driver.find_elements_by_tag_name("iframe")[0]
driver.switch_to_frame(iframe)
driver.switch_to.frame(iframe)
 4.通过index索引定位,(从0开始)
driver.switch_to_frame(1)   # 第二个

# 使用iframe定位后需退出iframe
# 退出iframe,再操作
driver.switch_to_default_content()  # 回到主页面
driver.switch_to.default_content()

# 3、多个iframe的切换问题

# 如:有两个iframe:f1、f2
# 1.定位到f1
driver.switch_to_frame("f1")
# 2.操作元素
# ······
# 3.退出iframe
driver.switch_to_default_content()
# 4.定位到f2
driver.switch_to_frame("f2")
# ······

# 嵌套:f1中嵌套着f2
driver.switch_to_frame("f1")
driver.switch_to_frame("f2")
# 操作元素
# 退出iframe:

# 第一种方式:跳出所有iframe,回到主界面
driver.switch_to_default_content()

# 第二种方式:回到f1(返回上一级)
driver.switch_to.parent_frame()

原文地址:https://www.cnblogs.com/shiyongge/p/10022806.html

时间: 2024-10-10 15:23:40

python+selenium定位iframe的相关文章

python selenium中iframe切换、window切换方法

一.selenium中iframe切换方法: 方法一:switch_to.frame frame函数中提供了三种定位方法: driver.switch_to.frame('frame_name') driver.switch_to.frame(1) driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0]) 以腾讯课堂为例: from selenium import webdriver from time

【selenium学习笔记一】python + selenium定位页面元素的办法。

1.什么是Selenium,为什么web测试,大家都用它? Selenium设计初衷就是为web项目的验收测试再开发.内核使用的是javaScript语言编写,几乎支持所以能运行javaScript的浏览器,支持windows\linux\macos等各种平台. Selenium 脚本是用多种受支持的编程语言中的一种编写的 —— 目前可用的有 Java.Ruby 和 Python 驱动程序.这些脚本在浏览器之外的一个单独的进程中运行.驱动程序的任务是执行测试脚本,并通过与运行在浏览器中的 bro

Python+Selenium定位不到元素常见原因及解决办法

在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况(报selenium.common.exceptions.NoSuchElementException),一般可以从以下几个方面着手解决: 1.Frame/Iframe原因定位不到元素: 这个是最常见的原因,首先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位. 解决方案:如果iframe有

python+selenium 定位元素

一.安装python1.配置环境变量c:\python27:C:\Python27\Scripts2.验证pyton是否可用,在cmd里面输入python没报错就行 二.安装selenium库4.安装selenium:在cmd里面,输入:pip install selenium 三.对应于webdriver中的定位方法分别是: driver.find_element_by_name()--最常用,简单 driver.find_element_by_id()--最常用,简单 driver.find

python + selenium定位页面元素的办法

1.什么是Selenium,为什么web测试,大家都用它? Selenium设计初衷就是为web项目的验收测试再开发.内核使用的是javaScript语言编写,几乎支持所以能运行javaScript的浏览器,支持windows\linux\macos等各种平台. Selenium 脚本是用多种受支持的编程语言中的一种编写的 -- 目前可用的有 Java.Ruby 和 Python 驱动程序.这些脚本在浏览器之外的一个单独的进程中运行.驱动程序的任务是执行测试脚本,并通过与运行在浏览器中的 bro

python+selenium:iframe框架中动态id如何切换

方法一:通过索引,id,name,WebElement定位 from selenium import webdriverdriver = webdriver.Firefox()driver.switch_to.frame(0) # 1.用frame的index来定位,第一个是0# driver.switch_to.frame("frame1") # 2.用id来定位# driver.switch_to.frame("myframe") # 3.用name来定位# d

python+selenium 对于iframe的切入切出

发现问题:在对http://www.126.com自动化测试登陆邮箱的时候,总是不能定位到登陆名和密码.不管是用class,xpath,id,css等方法均是不可以.后来仔细查看,才发现这个登陆内嵌的,即iframe,所以要对其切入才能定位到对于的元素上去.解决办法:1.首先对于iframe的内嵌html,用 switch_to.frame切入 iframe 才能获得其中的元素.2.当要获取 iframe外部元素,用switch_to_default_content()切出iframe .如果不

Python+Selenium 定位页面元素

1.跳转到Frame/Iframe ,再定位元素理解:frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位 1.1方法一如果iframe有name或id的话,直接使用switch_to_frame("name值")或switch_to_frame("id值").如下:driver=webdriver.Firefox()driver.get(r'http://w

关于Python+selenium 定位浏览器弹窗元素

链接:https://www.jianshu.com/p/4c3330c1cdb5 (1)div弹窗 (2)新标签页弹窗 (3)alert弹窗 一,div弹窗 div弹窗是浏览器中比较好定位的弹窗,定位的方法与普通的元素一样.不过这里会有一个坑,明明可以找到这个按钮,但是就是定位不到.这个就是因为当前有div弹窗弹出的时候,需要设置一下等待时间,等页面元素加载完毕,再去做其他操作. 二,新标签页弹窗 新标签页弹窗,则需要进行窗口的切换.此处第一个窗口打开百度首页,在打开一个新窗口打开京东首页,在