【UI自动化】UI自动化之特殊处理一(iframe句柄鼠标键盘)

iframe句柄鼠标键盘是一些比较特殊的事件,需要特殊处理

目录

1、iframe

2、句柄(handle)

3、鼠标键盘

1、iframe

iframe 是内嵌的网页元素,也可以说是内嵌的框架,我们需要先切换到iframe上面,才能对元素进行操作,若需要再操作不在iframe上的元素需要切换topwindow

001、判断是否有iframe

至于在不在iframe上面,通过firepath看一下是不是topwindow,如果不是就是在iframe上面

iframe一般有2种,一种是有id,一种没有id

002、有id的通过id来定位

driver.switch_to_frame(“id属性值”)

  

003、无id的通过tag name定位,然后切换

m=driver.find_element_by_tag_name(“iframe”)
driver.switch_to_frame(m)

特别的,有多个无id的iframe,可通过索引来定位

m=driver.find_element_by_tag_name("iframe")[0]
switch_to.iframe(m)

004、操作完iframe上的元素后,需要操作不在iframe上的元素,需要切回topwindow,再操作

driver.switch_to_default_content()

 特别的,有多个iframe,需要一层一层的定位进去;需要切换回上一个iframe,可以用

driver.switch_to.parent_frame() 

注:switch_to_frame()上面会有横线,可以写成driver.switch_to.frame(),就没问题了

2、句柄(handle)

再调试的时候,如果点开的是一个链接,则可以手动拖动下,看他是否会重新打开一个窗口,如果会,则他就是另一个句柄了。浏览器窗口的属性,用句柄来识别

001、打印当前句柄

m=driver.current_window_handle
print m

002、获取所有句柄

m=driver.window_handles
print m
'''获取第二个句柄’‘’
print m[1]

003、如果不等于当前句柄就切换

h = driver.current_window_handle
all_h = driver.window_handles
for i in all_h:
     if i!=h;
	driver.switch_to.window(i)

 

driver.switch_to.window(h) #切换回首页

3、鼠标键盘

001、键盘事件

一般在浏览器中会有一个输入完就回车的动作submit()

driver.find_element_by_name("password").sendkeys()
driver.find_element_by_name("password").submit()

如果submit()提交不了的话,可以导入键盘事件模块

导入:

from selenium.webdriver.common.keys import Keys

键盘操作有单个输入和组合输入

单个输入

如enter:send_keys(keys,ENTER)

制表键 Tab: send_keys(Keys.TAB) 

空格键:send_keys(Keys.SPACE) 

组合输入

如复刢 Ctrl+C:send_keys(Keys.CONTROL,'c') ,其他组合键类似

可以将剪切、复制、粘贴组合使用。

002、鼠标事件

导入:

from selenium.webdriver.common.action_chains import ActionChains

 鼠标事件后,都需要有一个执行的动作perform(),最常见的鼠标动作就是悬停move_to_element()

a、悬停事件

mouse = driver.find_element_by_link_text("设置")
ActionChains(driver).move_to_element(mouse).perform()

b、拖动事件

从源路径将鼠标滑动拖到目标路径

source = driver.find_element_by_id("xxx")
target = driver.find_element_by_id("xxx")
ActionChains(driver).drag_and_drop(source, target).perform()

转载:UI自动化之特殊处理一(iframe句柄鼠标键盘) - 走看看 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值