selenium基础(多表单切换、多窗口切换)
一、多表单的切换
frame:HTML页面中的一中框架,主要作用是在当前页面中指定区域显示另一页面元素;
(HTML语言中,frame/iframe标签为表单框架)
- 在web应用中会遇到frame或者iframe表单嵌套页面的应用,对于表单内嵌页面上的元素无法直接进行定位
- 通过driver.switch_to.frame("id|name")方法将当前定位的主体切换为frame或iframe表单的内嵌页面中
- 恢复默认页面方法:driver.switch_to.default_content()
- 以126邮箱登录功能为例,代码如下
from selenium import webdriver
import time
from webdriver.common.action_chains import ActionChains driver=webdriver.Firefox()
driver.get("https://mail.126.com/")
driver.maximize_window()
driver.find_element_by_id("switchAccountLogin").click()
time.sleep(1)
#定位当内嵌表单中
driver.switch_to.frame("")#因id是动态的,通过name进行定位
driver.find_element_by_name("email").send_keys(13212345678)
time.sleep(1)
driver.find_element_by_name("password").send_keys(12345678)
time.sleep(1)
#恢复到默认页面
driver.switch_to.default_content()
driver.quit()
#以麦子学院为例:
from selenium import webdriver
import time driver=webdriver.Firefox()
driver.get("http://www.maiziedu.com/")
time.sleep(10)
driver.switch_to.frame("chatIframe")#进入嵌套表单页面
driver.find_element_by_xpath('//*[@id="chat-close"]').click()
driver.switch_to.default_content()#恢复到默认页面
time.sleep(2)
driver.find_element_by_link_text('登录').click()
driver.find_element_by_id('id_account_l').send_keys("1234qw3486029")
driver.find_element_by_id('id_password_l').send_keys(12345)
driver.find_element_by_id('login_btn').click()
time.sleep(2) driver.quit()
二、多窗口切换
说明:在HTML页面中,经常有a标签也就是超链接,这些链接在执行时,有的会在新的窗口的打开链接
1、多窗口切换
说明:在WebDriver中的封装了获取当前窗口句柄方法和获取所有窗口句柄的方法以及切换指定句柄窗口的方法
(句柄:窗口的唯一开标识码)
2、方法:
(1)driver.current_window_handle 获取当前窗口句柄
(2)driver.window_handles 获取所有窗口句柄
(3)driver.switch_to.window(handle) 切换指定句柄窗口
(4)driver.close() 关闭当前的句柄
(5)driver.quit() 关闭浏览器
from selenium import webdriver
import time driver=webdriver.Firefox()
#进入百度首页-搜索麦子学院
driver.get('https://www.baidu.com')
time.sleep(2)
driver.find_element_by_id('kw').send_keys('麦子学院')
driver.find_element_by_id('su').click()
time.sleep(2)
#搜索麦子学院首页
driver.find_element_by_partial_link_text('专业IT职业教育平台').click()
time.sleep(2)
#跳转到百度引擎页面
driver.switch_to.window(driver.window_handles[0])#获取窗口的句柄,并跳转到第一个句柄
time.sleep(2)
#跳转回麦子学院首页
driver.switch_to.window(driver.window_handles[1])#跳转回麦子学院首页
time.sleep(2)
#关闭麦子学院首页句柄
driver.close()
time.sleep(2) #退出浏览器
driver.quit()
selenium基础(多表单切换、多窗口切换)的更多相关文章
- selenium+Python(表单、多窗口切换)
1.多表单切换 在Web应用中经常会遇到frame/iframe表单嵌套页面的应用,WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌页面上的元素无法直接定位.这 ...
- Python+selenium(多表单、多窗口切换)
多表单切换 案例:在Frame.html文件种定位搜狗搜索页面,进行搜索操作 Frame.html <html> <head> <title>Frame_test& ...
- 『心善渊』Selenium3.0基础 — 16、Selenium对iframe表单的操作
目录 1.什么是iframe表单 2.iframe表单操作流程 3.iframe表单操作常用方法 (1)进入表单 (2)多表单切换 4.表单操作示例 1.什么是iframe表单 实际上就是HTML页面 ...
- Bootstrap<基础六> 表单
Bootstrap 通过一些简单的 HTML 标签和扩展的类即可创建出不同样式的表单. 表单布局 Bootstrap 提供了下列类型的表单布局: 垂直表单(默认) 内联表单 水平表单 垂直或基本表单 ...
- [06]HTML基础之表单标签
1. <form>标签 表单容器,指定method属性和action属性是个良好的习惯. <form methor="POST" action="htt ...
- Selenium 3----定位一组元素+多表单切换+多窗口切换
定位一组元素 和定位单个元素类似,WebDriver提供了8种用于定位一组元素的方法.定位一组元素的方法与定位单个元素的方法类似,唯一的区别是在单词element后面多了一个s表示复数. find_e ...
- selenium webdriver——多表单切换与多窗口切换
多表单切换 >>在Web应用中经常会遇到frame/iframe表单嵌套页面的应用,WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe 表单内嵌页面上的元素无 ...
- Selenium:多表单(frame/iframe)切换(Switch模块)
frame标签有frameset.frame.iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位,而frame与iframe需要切换进去才能定位到其中的元素 比如下面这个网 ...
- Selenium WebDriver多层表单切换
[Java] 首先 测试网站frame结构为 -topframe: -centerframe: -leftframe: -mainframe: -bottomframe: 我当时遇到的问题是,首先在c ...
- python+selenium之多表单切换
在Web应用中经常会遇到fram/iframe表单嵌套页面的应用,WebDriver只能在一个页面上对元素识别与定位,对于fram/iframe表单内嵌套页面上的元素无法直接定位.这是需要通过swit ...
随机推荐
- JavaWeb学习篇之----Jsp详解
今天我们来看一下Jsp的相关知识,首先来看看一下Jsp的相关定义: 简介: JSP全称是JavaServer Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术 ...
- linux环境下创建domain
首先进入weblogic的安装目录,具体如下: cd /wls/Oracle/Middleware/Oracle_Home/wlserver/common/bin 图形化创建 1.下载xmanager ...
- POJ3241 最小曼哈顿距离生成树 - 真有趣哇
目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog Problem:Portal传送门 原题目描述在最下面. 给你n个坐标, ...
- JS中 reduce() 的用法
过去有很长一段时间,我一直很难理解 reduce() 这个方法的具体用法,平时也很少用到它.事实上,如果你能真正了解它的话,其实在很多地方我们都可以用得上,那么今天我们就来简单聊聊JS中 reduce ...
- 信息安全-技术-Web:cookie
ylbtech-信息安全-技术-Web:cookie Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份.进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密 ...
- openstack nova 源码解析 — Nova API 执行过程从(novaclient到Action)
目录 目录 Nova API Nova API 的执行过程 novaclient 将 Commands 转换为标准的HTTP请求 PasteDeploy 将 HTTP 请求路由到具体的 WSGI Ap ...
- 在Word中如何自动生成参考文献引用
来自:在Word中如何自动生成参考文献引用 在写毕业论文时,参考文献动辄就有四五十篇,在文中对照参考文献逐一引用是一件十分痛苦的事情,而且一旦参考文献的顺序发生变化,文中的引用也要逐个修改,那么,我们 ...
- JAVA泛型知识(一)
Java泛型知识(二)<? extends T>和<? super T> Java1.5泛型指南中文版(Java1.5 Generic Tutorial) 目 录 ...
- Java & 架构硬核福利,速度上车!
极客时间福利时间! 最近,栈长每周都会给大家带来极客时间的专栏拼团优惠,给错过优惠的朋友一个再次优惠上车的机会. <从0开始学架构>和<Java核心技术36讲>,这两个专栏很火 ...
- pandas中series求交集
在进行数据探索的时候会遇到求交集的情况,比如说:优惠卷预测的时候,有多张表,表1有用户id,表2也有用户id,但是不能确定表1的用户有多少出现在表2当中. un_id1,un_id2 为两个 Seri ...