webUI自动化基础必会知识点

本文详细介绍了Selenium在网页自动化测试中的各种实用技巧,包括获取页面信息、控制浏览器行为、设置窗口尺寸、执行动作事件、属性值获取、鼠标和键盘事件、等待时间处理、窗口切换、弹窗处理以及iframe操作。通过这些技巧,可以高效地进行自动化测试并提升测试效率。
摘要由CSDN通过智能技术生成

一、验证信息

1、获取title
也就是获取页面标签
在这里插入图片描述

通过driver.title调用title信息
在这里插入图片描述
2、获取当前的url信息
先进入需要获取url信息的控键页面,通过driner.current_url获取当前url信息
在这里插入图片描述

二、控制浏览器

1、刷新页面:driver.refresh()
2、后退到上一次页面:driver.back()
3、前进到上一次页面:driver.forward()
4、截图:
(1)、元素截图
在这里插入图片描述
(2)、页面截图

driver.save_screenshot("bb.png")
driver.get_screenshot_as_file("cc.png")

在这里插入图片描述

三、设置窗体尺寸

1、窗体最大化:driver.maximize_window()
2、自定义窗口大小:driver.set_window_size(宽,高)

四、动作事件

1、清空输入框内容:clear()
2、输入框输入内容:send.keys()
3、点击控键:cilck()

五、属性值获取方法

1、获取控键尺寸:先定位控键,然后通过.size获取控键尺寸,并赋值给变量名
在这里插入图片描述

2、获取文本信息:先定位控键,然后通过.text获取文本信息,并赋值给变量名
在这里插入图片描述
3、获取属性值:先定位控键,然后通过.get_attribute(‘属性’)获取属性值,并赋值给变量名

下面这里拿到的是一个商品的链接,拿到这个链接可以使用点击功能直接跳转到商品页面,
这样就不需要去切换界面了。
在这里插入图片描述
4、判断控键是否显示出来:先定位控键,然后通过.is_displayed()判断是否显示,并赋值给变量,打印出来的结果是bool类型
在这里插入图片描述

六、鼠标事件

1、需要先导入鼠标类名:

from selenium.webdriver.common.action_chains import ActionChains

2、定位鼠标:
首先定位控键并赋值给变量名,然后通过ActionChains(driver)导入driver,通过move_to_element(控键变量名)把鼠标挪到控键上,通过.perform()生效所有动作
在这里插入图片描述
展示效果如下:
在这里插入图片描述
3、双击控键:
首先定位控键并赋值给变量名,然后通过ActionChains(driver)导入driver,通过double_cilck(控键变量名)双击控键,通过.perform()生效所有动作
在这里插入图片描述

七、键盘事件

1、首先导入键盘类名:

from selenium.webdriver.common.keys import keys

注意:键盘操作时不能连续操作,只能一次一次操作如下面这样的就是错误操作

search_input.send_keys(Keys.CONTROL+"C", Keys.CONTROL+"V")

2、键盘输入:
定位控键+.send_keys(“输入内容”)
在这里插入图片描述
3、退格(删除一个单元格):
定位控键+.send_keys(Keys,BACK_SPACE)

search_input = driver.find_element(By.ID, "search-input")
search_input.send_keys("手机")   
search_input.send_keys(Keys.BACK_SPACE) #将输入的“手机”删除掉最后一个字“机”

4、输入空格:
定位控键+.send_keys(Keys,SPACE)

search_input = driver.find_element(By.ID, "search-input")
search_input.send_keys("手机")
search_input.send_keys(Keys.SPACE, "测试") #在输入空格后在输入“测试”

5、全选、复制、粘贴、剪切:
定位控键+.send_keys(Keys,CONTROL,‘a’)
A: 全选
X: 剪切
C: 复制
V: 粘贴

search_input = driver.find_element(By.ID, "search-input")
search_input.send_keys("手机")
search_input.send_keys(Keys.CONTROL, "a") #全选
time.sleep(2)
search_input.send_keys(Keys.CONTROL, "c") #复制
search_input.click()
time.sleep(2)
search_input.send_keys(Keys.CONTROL, "V")#粘贴

八、三种等待时间

1、强制等待时间:time.sleep(n) n单位为秒,数值
先导入time类名:import time(from time import sleep)
必须把设置时间等完才会往下执行
2、隐式等待时间:driver.implicitly_wait(n) n单位为秒,数值
表示最大等待为设置的时间,在设置时间内加载出来就直接往下执行,不需要把设置时间等完,如设置时间内没加载出来就会报错
3、显式等待时间:WebDriverWait
需要先导入WebDriverWait、By、EC三个类名:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC   
ele = WebDriverWait(driver,15,0.5).until(EC.presence_of_element_located(
	(By.XPATH,"//div[@class='schbox']/form/input[1]")))

最大等待15秒,每隔0.5秒检测一次,直到当前界面存在了定位的控键

九、多窗口切换

1、获取当前所有的窗体信息:

print(driver.window_handles)

2、获取当前窗体焦点信息:
(查看定位在哪个窗口里面)

print (driver.current_window_handle) 

3、切换窗体焦点信息:

#切换到第二个窗口
driver.switch to.window(driver.window handles[1])
windows = driver.window_handles
driver.switch_to.window(windows[-1])#切换到最后一个窗口

4、关闭你当前焦点所在的窗体:

driver.close()

5、关闭所有窗体:

driver.quit()

十、alert处理(弹窗)

1、三种形态
(1)有一个text信息和一个确定按钮
(2)有text信息和取消以及确定按钮
(3)有个text信息和一个输入框,输入框输入信息后显示取消和确定按钮
2、获取文本信息

driver.switch_to.alert.text

在这里插入图片描述
3、点击确定/取消按钮

"""
1、driver.switch_to.alert.accept()    确定
2、driver.switch_to.alert.dismiss()   取消
"""

十一、iframe处理(存在多个html和iframe)

1、方式一:如果iframe有 id 或者 有name,并且它们的属性值不为空,并且不是变化的,通过这个方法切到iframe里面
在这里插入图片描述

#frame1可以是id可以是name
driver.switch_to.frame("frame1")

2、第二种方式(通用方式):通过xpath先定位到iframe,在切到iframe

fre = driver.find_element(By.XPATH, "//*[@id='frame1']")
driver.switch_to.frame(fre)

3、从子iframe切回到父级frame
(父子级关系需要一层一层切)

#每次只切出一层
driver.switch_to.parent_frame()

4、切回主文档(切回根节点)

driver.switch_to.default_content()

5、面试题:我们定位控件有哪些情况定位不到
(1)等待时间不够
(2)写的定位方式不对
(3)多窗口
(4)存在iframe情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值