当前位置:网站首页>Selenium自动化中无头浏览器的应用
Selenium自动化中无头浏览器的应用
2022-07-31 14:44:00 【T_JC】
Selenium自动化中无头浏览器的应用:
由于在实际的测试环境下,使用图形界面的浏览器占用测试机资源过大效率低, 一般来说,在调试好脚本的基础上,抛开浏览器图形界面执行测试用例的.
现在可以使用的无头浏览器有很多,这里介绍一个使用方便的无头浏览器的解决方案 – 使用Chrome的禁用图形界面运行.
一般使用Chrome进行脚本运行时,使用的是Chrome类实例化的浏览器对象, 其实还有另一个类提供了对浏览器的配置 – ChromeOptions( selenium.webdriver.ChromeOptions)
from seleniumimport webdriver
#创建出启动浏览器所需要配置--实例化ChromeOptions浏览器选项对象
co= webdriver.ChromeOptions()
#构建配置信息--通过浏览器选项对象调用配置方法
co.headless= True #设置浏览器为无头模式
#将配置信息加入到浏览器启动--实例化浏览器驱动对象添加属性option值
driver= webdriver.Chrome(options=co)
#设置浏览器页面大小为常用窗口大小1366*768
driver.set_window_size(1366,768)
#打开页面,进行页面操作
driver.get("http://www.baidu.com")
#业务操作
driver.find_element_by_id("kw").send_keys("chrome")
driver.get_screenshot_as_file("./a.png")
#退出浏览器驱动对象
driver.quit()
首先:明确Selenium的编写自动化测试脚本的基本步骤
模拟用户打开浏览器 – 实例化浏览器驱动对象
模拟输入网址操作 – 驱动对象调用get方法
模拟用户页面操作 – 驱动对象页面定位和元素操作
模拟用户关闭浏览器 – 驱动对象调用quit方法
from seleniumimport webdriver
# 1. 模拟用户打开浏览器--实例化浏览器驱动对象
driver= webdriver.Chrome()
# 2. 模拟输入网址操作--驱动对象调用get方法
driver.get("http://www.baidu.com")
# 3. 模拟用户页面操作--驱动对象页面定位和元素操作
driver.find_element_by_id("kw").send_keys("chrome")
driver.get_screenshot_as_file("./a.png")
# 4. 模拟用户关闭浏览器-- 驱动对象调用quit方法
driver.quit()
然后:针对驱动对象的实例化操作进行扩展-- ChromeOptions
上面浏览器是默认启动的浏览器 – 没有进行任何配置 – 如何实现浏览器的配置启动呢?
创建出启动浏览器所需要配置 – 实例化ChromeOptions浏览器选项对象
构建配置信息 – 通过浏览器选项对象调用配置方法
将配置信息加入到浏览器启动 – 实例化浏览器驱动对象添加属性option值
from seleniumimport webdriver
#创建出启动浏览器所需要配置--实例化ChromeOptions浏览器选项对象
co= webdriver.ChromeOptions()
#构建配置信息--通过浏览器选项对象调用配置方法
co.headless= True #设置浏览器为无头模式
#将配置信息加入到浏览器启动--实例化浏览器驱动对象添加属性option值
driver= webdriver.Chrome(options=co)
#打开页面,进行页面操作
driver.get("http://www.baidu.com")
#业务操作
driver.find_element_by_id("kw").send_keys("chrome")
driver.get_screenshot_as_file("./a.png")
#退出浏览器驱动对象
driver.quit()
最后:优化一下上面的代码,窗口太小无法看到整个页面–最大化浏览器窗口
注意: 这里有一个有意思的现象: driver.maximize_window() 在这里是无法起效的
所以需要使用另一个控制窗口大小的方法driver.setwindowsize(x,y)
from seleniumimport webdriver
#创建出启动浏览器所需要配置--实例化ChromeOptions浏览器选项对象
co= webdriver.ChromeOptions()
#构建配置信息--通过浏览器选项对象调用配置方法
co.headless= True #设置浏览器为无头模式
#将配置信息加入到浏览器启动--实例化浏览器驱动对象添加属性option值
driver= webdriver.Chrome(options=co)
#设置浏览器页面大小为常用窗口大小1366*768
driver.set_window_size(1366,768)
#打开页面,进行页面操作
driver.get("http://www.baidu.com")
#业务操作
driver.find_element_by_id("kw").send_keys("chrome")
driver.get_screenshot_as_file("./a.png")
#退出浏览器驱动对象
driver.quit()
总结
如果需要更多浏览器设置,最好的方法可以进入ChromeOptions类中读懂代码,可以学到很多
边栏推荐
- MySQL【子查询】
- The magic of SQL MERGE statement (detailed instructions)
- An article makes it clear!What is the difference and connection between database and data warehouse?
- ML, DL, CV common problems sorting
- ERROR: Failed building wheel for osgeo
- OpenShift 4 - 用 Operator 部署 Redis 集群
- C language basic practice (nine-nine multiplication table) and printing different asterisk patterns
- 英文语法-时与态
- 公告
- [QNX Hypervisor 2.2用户手册]9.13 rom
猜你喜欢

LeetCode二叉树系列——110.平衡二叉树

OpenShift 4 - Customize RHACS security policies to prevent production clusters from using high-risk registry

UnityShader入门学习(三)——Unity的Shader

使用NVM进行node版本切换管理

LeetCode二叉树系列——226.翻转二叉树

1小时直播招募令:行业大咖干货分享,企业报名开启丨量子位·视点

I summed up the bad MySQL interview questions

自适应控制——仿真实验二 用Narendra方案设计模型参考自适应系统

组合系列--有排列就有组合

Sentinel服务熔断和降级
随机推荐
【Pytorch】F.softmax()方法说明
OAuth2:资源服务器
Nuget打包并上传教程
The meaning of node_exporter performance monitoring information collection in Prometheus
ERROR: Failed building wheel for osgeo
Introduction to BigDecimal, common methods
谷歌CTS测试(cta测试)
The 232-layer 3D flash memory chip is here: the single-chip capacity is 2TB, and the transmission speed is increased by 50%
高等数学——常用不定积分公式
海康摄像机取流RTSP地址规则说明
Resnet&API
Redis与分布式:集群搭建
The role of /etc/profile, /etc/bashrc, ~/.bash_profile, ~/.bashrc files
Redis与分布式:主从复制
In the future, the interviewer asks you why it is not recommended to use Select *, please answer him out loud!
charles进行弱网测试(app弱网测试怎么做)
The recently popular domestic interface artifact Apipost experience
三角恒等变换公式
PDF 拆分/合并
Open Inventor 10.12 Major Improvements - Harmony Edition