一.多窗口进行切换(windows窗口切换)
1.常用到的切换命令 switch_to_window
current_window_handle 用于显示当前所在窗口的位置信息
window_handles 能够显示当前所有的窗口位置信息
2.举例:以百度页面的登录为例
3.具体操作过程(1)首先获取到百度的地址
(2)通过id找到百度的登录按钮的位置,点击后,点击立即注册
(3)在点击立即注册后,会发现会弹出来一个新的窗口页面,这时候就会涉及到窗口的转化(故需要看一下所有的窗口,然后判断新跳入的窗口的位置)
(4)通过swith_to_window([-1])代表所查到的窗口的倒数第一个,swith_to_window([0])代表第一个
二.网页frame的多切换(在web中,如果定位一个元素找不到,大多数是在frame中,浏览器不止一个,多窗口)
1.分为嵌套和未嵌套
(1)未嵌套:直接切换即可 swith_to_frame("id或则索引值")
(2)嵌套:swith_to.frame("id或则索引值") 先切换到父节点 swith_to.frame("父节点") 然后切换到子节点 swith_to.frame("子节点")
2.举例: 如图:以某网站的带有Frame的元素进行简单的操作
三.ActionChains :执行PC端的鼠标点击,双击,右键,拖拽等事件
1.首先了解其原理:当调用ActionChains时,不会立即执行,而是将所有要执行的操作按照顺序放在队列里,当调用perform()时,队列的事件会依次执行
2.基本用法:(1)生成一个动作action = ActionChains(driver)
(2)动作添加方法 action.方法1
(3)动作添加方法 action.方法2
(4)调用perform()执行 【action.perform()】
3.由于ActionChains有许多方法,所以在此不介绍了,具体可到官网查看 --> https://selenium-python.readthedocs.io/
4.同时,ActionChains也提供了很多按键操作,能够用SendKeys来实现
练习网址: http://sahitest.com/demo/label.htm
四.ActionChains对于H5页操作是无效的,但是TouchActions却是可以的 :模拟PC和移动端的点击,滑动,拖拽,多点触控等多种手势操作,
在这里以百度为例,滑动到百度首页的最底端
如果在运行过程中出现不符合国际编码W3C的问题,可以通过此编码问题解决
五.表单操作
1.表单是使用标签<form>中的
2.操作步骤:与正常的获取元素是一样的
(1)首先定位到表单元素
(2)然后去操控元素(清空,输入或是点击的操作等)