13.Selenium2 自动化测试实战-基于Python语言-多表单切换

本文介绍了如何使用Selenium WebDriver定位并操作网页中的iframe元素。提供了两种方式:一是通过iframe的ID直接切换;二是当iframe缺乏ID时,利用XPath定位后再进行切换。这两种方法能够帮助测试工程师更好地进行页面元素的操作。

在Web应用中,经常会遇到frame/iframe表单嵌套页面的应用,Webdriver只能在一个页面上对元素识别和定位,对于frame/iframe表单内嵌页面的元素无法直接定位,这时,就需要通过switch_to.frame()方法将当前定位的主体切换为frame/iframe表单内嵌的页面中。

'''
Date: 2017/03/28
Method:
  *  switch_to.frame()  进入表单
  *  switch_to.default_content()  退出表单至根页面
'''
from selenium import webdriver
import time,os
driver =webdriver.Chrome()
file_path='file:///'+os.path.abspath('./webdriver_api/web_page/frame.html')
driver.get(file_path)
print(file_path)


#切换到iframe(id="if")
driver.switch_to.frame("if")

#下面就可以正常的操作元素了
driver.find_element_by_id("kw").send_keys("selenium")
driver.find_element_by_id("su").click()
time.sleep(3)

driver.quit()


switch_to.frame()默认可以直接取表单的id或name属性。如果iframe没有可用的id和name属性,则可以使用下面的方式进行定位。

'''
Date: 2017/03/28
Method:
  *  switch_to.frame()  进入表单
  *  switch_to.default_content()  退出表单至根页面
'''
from selenium import webdriver
import time,os
driver =webdriver.Chrome()
file_path='file:///'+os.path.abspath('./webdriver_api/web_page/frame.html')
driver.get(file_path)
print(file_path)

#先通过xpath定位到iframe
xf=driver.find_element_by_xpath('//*[@class="if"]')
#再将定位对象传给switch_to.frame()方法
driver.switch_to.frame(xf)


driver.find_element_by_id("kw").send_keys("selenium")
driver.find_element_by_id("su").click()
time.sleep(3)

driver.quit()


 *  switch_to.frame()  进入表单
 *  switch_to.default_content()  退出表单至根页面
 *  switch_to.parent_content() 跳出当前一级表单

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值