当前位置: 首页 > news >正文

云南网站优化排名长沙专业网站优化定制

云南网站优化排名,长沙专业网站优化定制,7天酒店网站建设优势,网站建设如何设置登录页面前言 在自动化测试领域#xff0c;Selenium一直是主流工具之一。随着前端技术的不断发展#xff0c;浏览器的功能也在不断丰富。 Selenium 3版本前#xff0c;一套通用的采集流程如上图所示#xff1a; 打开Charles#xff0c;设置Session自动导出频次及导出路径Seleniu…前言 在自动化测试领域Selenium一直是主流工具之一。随着前端技术的不断发展浏览器的功能也在不断丰富。 Selenium 3版本前一套通用的采集流程如上图所示 打开Charles设置Session自动导出频次及导出路径Selenium模拟操作Chrome网页页面待网页页面渲染出需采集的数据解析Charles拦截的Session提取目标数据 Selenium 4版本引入了org.openqa.selenium.devtools.DevTools为开发者提供了更底层、更强大的浏览器交互能力。对以上采集流程而言DevTools优化了步骤2减少了模块间的异步交互增加了采集的稳定性。 什么是DevTools DevTools是Selenium 4引入的一个全新的功能模块它允许开发者直接与浏览器的DevTools协议Chrome DevTools ProtocolCDP进行交互。通过DevTools开发者可以获取浏览器的更底层信息或者执行更复杂的浏览器操作。 Chrome DevTools协议是一个允许工具与浏览器内部对象交互的接口。通过CDP开发者可以访问浏览器的所有内部信息如页面结构、网络请求、性能指标等。此外CDP还允许开发者执行一些高级操作如设置页面缩放、获取页面截图、模拟设备等。 为什么使用DevTools 更底层的浏览器控制 相比传统的Selenium APIDevTools提供了更底层的浏览器控制能力。通过直接访问CDP开发者可以获取更详细的浏览器状态信息或执行更复杂的操作。 更高的灵活性 DevTools的灵活性是它最大的优势之一。通过CDP开发者可以根据需求自定义浏览器的行为而不受传统API的限制。 更广泛的应用场景 DevTools的功能涵盖了从性能分析到网络代理从页面调试到设备模拟等多个方面。这种多样化的功能使得DevTools在自动化测试、性能优化、网络调试等领域都有广泛的应用。 DevTools的核心概念 DevTools Server DevTools Server是DevTools的核心它负责与浏览器的CDP交互。开发者可以通过DevTools Server发送指令并接收浏览器的响应。DevTools Server的创建与管理是使用DevTools的前提条件。 DevTools Command DevTools Command是DevTools的操作单元。通过发送特定的命令开发者可以执行各种操作如获取页面内容、模拟用户交互、设置浏览器配置等。DevTools Command可以通过DevTools Server发送并通过回调接收执行结果。 Event Listener DevTools支持通过事件监听器Event Listener来监听浏览器的各种事件。例如开发者可以监听页面加载完成、网络请求完成、页面元素更新等事件。这使得开发者可以在特定事件发生时执行自定义逻辑。 实际应用场景 1. 获取页面性能数据 通过DevTools开发者可以轻松获取页面的性能数据如加载时间、内存使用情况、CPU使用情况等。这些数据对于性能优化非常有价值。 示例代码 import org.openqa.selenium.devtools.DevTools; import org.openqa.selenium.devtools.events.Event; import org.openqa.selenium.devtools.events.PerformanceMetric;// 创建DevTools实例 DevTools devTools new Chrome().getDevTools();// 监听性能指标事件 devTools.onPerformanceMetric(new ConsumerEventPerformanceMetric() {Overridepublic void accept(EventPerformanceMetric event) {PerformanceMetric metric event.getData();System.out.println(Metric Name: metric.getName());System.out.println(Value: metric.getValue());} });// 启动DevTools会话 devTools.send(Performance.startProfiling());2. 获取页面截图 通过DevTools开发者可以获取页面的截图并将其保存为图片文件。这种功能对于自动化测试中的视觉验证非常有用。 示例代码 import org.openqa.selenium.devtools.DevTools; import org.openqa.selenium.devtools.domain.browser.Target;// 创建DevTools实例 DevTools devTools new Chrome().getDevTools();// 获取当前窗口截图 String screenshot devTools.send(Browser.getViewport()).getScreenshot();// 将截图保存为PNG文件 File file new File(screenshot.png); Files.write(file.toPath(), Base64.getDecoder().decode(screenshot));3. 模拟设备和屏幕 DevTools允许开发者模拟不同的设备和屏幕分辨率。这种功能对于响应式设计测试非常有用。 示例代码 import org.openqa.selenium.devtools.DevTools; import org.openqa.selenium.devtools.domain.browser.Viewport;// 创建DevTools实例 DevTools devTools new Chrome().getDevTools();// 设置视口 Viewport viewport new Viewport(); viewport.setDeviceScaleFactor(2); viewport.setDeviceWidth(375); viewport.setDeviceHeight(667);// 发送设置指令 devTools.send(Browser.setDeviceMetrics(viewport));4. 自定义浏览器行为 DevTools允许开发者自定义浏览器的行为例如设置浏览器的user agent、模拟网络条件等。这种功能对于跨浏览器测试和网络调试非常有用。 示例代码 import org.openqa.selenium.devtools.DevTools; import org.openqa.selenium.devtools.domain.network.NetworkConditions;// 创建DevTools实例 DevTools devTools new Chrome().getDevTools();// 设置网络条件 NetworkConditions conditions new NetworkConditions(); conditions.setOffline(true); conditions.setLatency(1000); conditions.setDownloadThroughput(50000);// 发送网络条件设置指令 devTools.send(Network.setNetworkConditions(conditions));5. 调试和分析 DevTools提供了丰富的调试和分析工具例如堆栈跟踪、JavaScript执行、资源加载分析等。开发者可以利用这些工具来调试自动化测试脚本或者分析浏览器的行为。 示例代码 import org.openqa.selenium.devtools.DevTools; import org.openqa.selenium.devtools.domain.runtime.Runtime;// 创建DevTools实例 DevTools devTools new Chrome().getDevTools();// 执行JavaScript代码 String script console.log(Hello from DevTools!);; devTools.send(Runtime.evaluate(script));// 获取执行结果 String result devTools.send(Runtime.getHeapStatistics()).getUsedHeapSize(); System.out.println(Used Heap Size: result);Selenium 4中的DevTools集成 Selenium 4对DevTools进行了深度集成使得开发者可以更方便地使用这些功能。在Selenium 4中DevTools被设计为一个独立的模块开发者可以根据需求选择是否加载它。 启用DevTools 在Selenium 4中启用DevTools非常简单。开发者只需要创建一个DevTools实例即可开始使用。 示例代码 import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.devtools.DevTools;// 创建Chrome选项 ChromeOptions options new ChromeOptions();// 启用DevTools options.addArguments(--remote-debugging-port9222);// 创建Chrome驱动 ChromeDriver driver new ChromeDriver(options);// 获取DevTools实例 DevTools devTools driver.getDevTools();使用DevTools API Selenium 4提供了丰富的DevTools API涵盖了从浏览器控制到性能分析、从网络调试到设备模拟等多个方面。 示例代码 import org.openqa.selenium.devtools.DevTools; import org.openqa.selenium.devtools.domain.browser.Browser; import org.openqa.selenium.devtools.domain.runtime.Runtime;// 获取浏览器版本信息 String version devTools.send(Browser.getVersion()); System.out.println(Browser Version: version);// 获取运行时信息 String runtimeInfo devTools.send(Runtime.getRuntimeInfo()); System.out.println(Runtime Info: runtimeInfo);自定义DevTools命令 除了使用Selenium提供的API开发者还可以通过DevTools发送自定义的CDP命令。这种功能对于需要低级别控制的场景非常有用。 示例代码 import org.openqa.selenium.devtools.DevTools; import org.openqa.selenium.devtools.domain.custom.CustomCommand;// 创建自定义命令 CustomCommandString command new CustomCommand(Runtime.evaluate, request - {request.body().put(expression, window.innerWidth);request.body().put(contextId, 1); });// 发送自定义命令 String result devTools.send(command); System.out.println(Custom Command Result: result);总结 org.openqa.selenium.devtools.DevTools是Selenium 4版本中一个非常强大的功能模块。通过它开发者可以直接与浏览器的DevTools协议交互获取更底层的浏览器控制能力和更灵活的操作方式。无论是自动化测试、性能优化还是网络调试DevTools都能提供丰富的功能支持。
http://www.hkea.cn/news/14562200/

相关文章:

  • 做网站应下哪个软件重点实验室网站建设的意义
  • 哈尔滨cms网站建设服务专业的网页制作公司
  • 专业网站建站企业标小智在线logo免费设计
  • 苏州乡村旅游网站建设策划书.doc自己做网站需要花钱吗
  • 小昆山网站建设小学生广告语20条
  • 潍坊网站制作策划哈尔滨小程序开发制作公司
  • vue做直播网站将wordpress做成淘宝客
  • 求个国外在线网站重庆排名seo公司
  • 网站首页seo怎么做wordpress 自定义头像插件
  • 东方建设官方网站陕西一建2022停考
  • 网页设计网站费用天津网站建设的公司哪家好
  • 湖南网站建站系统哪家好google翻译
  • 微盟是做什么的优化设计七年级上册英语答案
  • 国家标准物质网站建设wifi管理网站
  • 网站项目规划与设计方案百度图片搜索网页版
  • 微信网站建设报价广州注册公司核名
  • 被墙的网站有哪些常熟做公司网站
  • 有域名建网站推广平台有哪些app
  • 织梦网站程序模板下载地址中文域名.网站
  • 怎么查网站关键词排名长沙互联网企业
  • 旅游扁平化设计网站模板商场大型话题活动策划网站
  • 数字域名做网站哪个网站可以做立体字的模板
  • 网站设计公司哪家wordpress图片放大插件
  • 服务器iis做网站网站制作好吗
  • 谷歌做英文网站东莞地产公司网站建设
  • 珠海网站建设策略网站建设xs029
  • 上海网站建设企业名录怎么制作游戏?
  • 150网站建设php网站开发电子书
  • wordpress 整站加密平面设计工作室创业计划书
  • 电子商务网站开发常用工具wordpress 标题换行