本节大纲
- 自动化之浏览器模式设置
- 窗口大小设置
- 多窗口(句柄)操作
- 切换frame操作
- 弹框处理
01.自动化之浏览器模式设置
浏览器模式设置
我们做 selenium UI 自动化测试时,每次都需要启动浏览器、用例运行结束后再关闭浏览器,浏览器 启动相当地耗费时间,在本机运行用例的话还得放开双手,可以使用chrome 的 headless 模式,让浏览 器在后台运行,不需要加载样式和渲染,也可以让自动化测试更稳定。 对浏览器模式的设置常见的有: 无头模式和手机模式 两种。无头模式
无头模式设置 无头浏览似乎是一个奇怪的术语,但它只是一个没有可识别的图形界面的浏览器或浏览器模拟的名 称。与使用熟悉的图形元素测试站点或执行常见操作不同,用例是自动化的,并使用命令行界面进 行测试。 无头浏览器通常用于以下场景 : 1. 网站及应用测试 2. JavaScript库测试 3. JavaScript模拟与交互 4. 在后台运行一个或多个自动化UI 测试Chrome无头模式设置
chrome无头模式设置 1. 声明一个谷歌配置对象:opts = webdriver.ChromeOptions() 2. 设置无头模式 • 方式一:调用方法:set_headless() , headless=True-> 无头模式, headless=False-> 正常模式 • 方式二:设置headless 属性值, True-> 无头模式, False-> 正常模式 • 方式三:添加参数方法:add_argument('-headless') , headless-> 无头模式, head-> 正常模式 3. 实例化浏览器对象是注入配置选项: driver = webdriver.Chrome(chrome_options = opts) 或者 driver = webdriver.Chrome(options = opts)Chrome无头模式设置-code
Firefox无头模式设置
Firefox无头模式设置 1. 声明一个火狐配置对象:options = webdriver.FirefoxOptions() 2. 设置无头模式 • 方式一:调用方法:set_headless() , headless=True-> 无头模式, headless=False-> 正常模式 • 方式二:设置headless 属性值, True-> 无头模式, False-> 正常模式 • 方式三:添加参数方法:add_argument('-headless') , headless-> 无头模式, head-> 正常模式 3. 实例化浏览器对象是注入配置选项: driver = webdriver.Firefox(firefox_options=options)Firefox无头模式设置-code
02. 窗口大小设置
窗口设置
设置窗口为指定大小: driver.set_window_size(540,960) 窗口最小化: driver.minimize_window() 窗口最大化: driver.maximize_window()
03.多窗口(句柄)操作
多窗口-句柄
有些页面的链接打开后,会重新打开一个窗口,对于这种情况,想在新页面上操作,就 得先切换窗口了。那么该如何切换窗口呢? 在 web 应用中, 每一个窗口都有一个对应的唯一句柄来进行标识 ,如果我们切换窗口, 则只需要获取新窗口的句柄,然后切换句柄即可。这样我们就能在多个页面上灵活自如 的操作了。 每一个窗口的唯一标识,每个窗口的句柄都不一样 1. 获取当前句柄 : driver.current_window_handle 2. 获取所有句柄: driver.window_handles 3. 切换句柄: driver.switch_to_window( 句柄号 ) 或者 switch_to.window( 句柄号 )案例
案例要求:进入百度首页,点击新闻按钮,在百度新闻界面任意点击一个链接
04.切换frame操作
iframe定位
在 web 应用中经常会出现 iframe 嵌套的应用,假设网站是一栋房子,那么 iframe 则是房 子中的某一个房间,如果你要从房间里拿到东西,那么必须要新进入房间,才能拿到相 应的内容。 定位ifarme: 1. selenium提供了 switch_to.frame(iframe 元素 ) 或者 switch_to.frame(iframe 元素 ) 的方法来进 入 iframe 这个房间 2. selenium提供 switch_to_default_content() 或者 switch_to.default_content() 的方法来退出 iframe 这个房间案例
以 163 邮箱的网站为例,要求:输 入用户名和密码,点击登录 网址: https://mail.163.com
05.弹框处理
弹框
在 web 中常见的弹框类型有: Alter 、 confirm 、 prompt 三种。并不是所有的弹出框都叫 alert , 在对弹出处理时首先要确定到底是属于哪一种,然后再用对应的方法去进行处理。
弹框操作的方法&属性
alert\confirm\prompt 弹出框操作主要方法有: 1. a=switch_to_alert()或者 switch_to.alert : 首先要切换到 alert 弹出框上,才能做确定、取消等 这些操作 2. a.accept() :点击 " 确认 " 3. a.dismiss() :点击 " 取消 " 4. a.send_keys() :输入文本值 -- 仅限于 prompt, 在 alert 和 confirm 上没有输入框 5. a.text :获取文本值Alter弹框
Comfirm弹框
Prompt弹框
微信搜一搜【程序员阿沐】关注这个文绉绉的程序员,这样的干货内容还有近百篇。关注后主页点击【领取资料】有我准备的一线大厂面试资料和简历模板,希望大家都能找到心仪的工作,学习是一条时而郁郁寡欢,时而开怀大笑的路,加油。如果你通过努力成功进入到了心仪的公司,一定不要懈怠放松,职场成长和新技术学习一样,不进则退。如果有幸我们江湖再见!