ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python自动化必知必会之切换操作技巧

2021-07-22 15:31:23  阅读:201  来源: 互联网

标签:浏览器 设置 headless Python 句柄 模式 必知 无头 必会


本节大纲

  1. 自动化之浏览器模式设置
  2. 窗口大小设置
  3. 多窗口(句柄)操作
  4. 切换frame操作
  5. 弹框处理

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弹框 

 


 微信搜一搜【程序员阿沐】关注这个文绉绉的程序员,这样的干货内容还有近百篇。关注后主页点击【领取资料】有我准备的一线大厂面试资料和简历模板,希望大家都能找到心仪的工作,学习是一条时而郁郁寡欢,时而开怀大笑的路,加油。如果你通过努力成功进入到了心仪的公司,一定不要懈怠放松,职场成长和新技术学习一样,不进则退。如果有幸我们江湖再见!
 

 

标签:浏览器,设置,headless,Python,句柄,模式,必知,无头,必会
来源: https://blog.csdn.net/m0_60126160/article/details/118999516

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有