(selenium+python)_UI自动化04_定位iframe框架内元素

什么是iframe?

iframe是HTML标签,作用是文档中的文档(即在当前 HTML 文档中嵌入另一个HTML文档),或者浮动的框架(FRAME)。iframe元素会创建包含另外一个文档的内联框架(即行内框架)。

iframe框架内元素定位

selenium中定位iframe内元素,需先切换到iframe框架内,然后再进行元素定位,否则会报错找不到元素。

一、iframe常用切换

driver.switch_to_frame(iframe_element)  # 切换至iframe
driver.switch_to.default_content()  # 切回主页面
driver.switch_to_parent_frame()  # 切回上级iframe

二、iframe常见场景

1,仅一个iframe框架

    切换至iframe-->定位iframe内元素-->切回首页-->定位目标元素

2,存在多个iframe框架

    切换至iframe1-->定位iframe1内元素-->切回首页-->切换至iframe2-->定位iframe2内元素-->切回首页-->定位目标元素

3,iframe框架内嵌另一iframe框架

    切换至iframe1-->切换至iframe2-->定位iframe2内元素-->切回首页-->定位目标元素

三、实例

 网易邮箱登录,账号密码输入框元素在iframe内,故模拟网易邮箱登录如下:

 1 # 模拟网易邮箱登录
 2 from selenium import webdriver
 3 from time import sleep
 4  
 5 driver = webdriver.Chrome()
 6 driver.get("https://email.163.com/")  # 进入网易邮箱首页
 7 sleep(3)
 8  
 9 iframe_ele = driver.find_element_by_tag_name("iframe")  # 获取ifarme元素
10 driver.switch_to.frame(iframe_ele)  # 切换到iframe框架
11 driver.find_element_by_name("email").send_keys("AutoTest")  # 输入邮箱
12 driver.find_element_by_name("password").send_keys("123456")  # 输入密码
13 driver.find_element_by_id("dologin").click()  # 点击登录
posted @ 2019-12-30 21:44  测试一枝花  阅读(1384)  评论(2编辑  收藏  举报