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

来源:互联网 发布:承德 网络英语培训 编辑:程序博客网 时间:2024/05/03 07:47

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

'''Date: 2017/03/28Method:  *  switch_to.frame()  进入表单  *  switch_to.default_content()  退出表单至根页面'''from selenium import webdriverimport time,osdriver =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/28Method:  *  switch_to.frame()  进入表单  *  switch_to.default_content()  退出表单至根页面'''from selenium import webdriverimport time,osdriver =webdriver.Chrome()file_path='file:///'+os.path.abspath('./webdriver_api/web_page/frame.html')driver.get(file_path)print(file_path)#先通过xpath定位到iframexf=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() 跳出当前一级表单

0 0
原创粉丝点击