Chrome浏览器实例的TypeScript自动化脚本

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: Chrome浏览器实例的TypeScript自动化脚本

Chrome浏览器作为全球使用最广泛的浏览器之一,其自动化操作的需求也随之增长。Puppeteer是一个Node库,它提供了一套高级API来控制Chrome或Chromium。本文将介绍如何使用TypeScript结合Puppeteer来创建一个自动化脚本,并在代码中集成代理信息,以实现对Chrome浏览器实例的控制。
为什么选择TypeScript和Puppeteer
TypeScript是一种由微软开发的开源编程语言,它是JavaScript的一个超集,添加了类型系统和对ES6+的支持。使用TypeScript可以提高代码的可读性和可维护性,同时减少运行时错误。
Puppeteer是一个Node库,它提供了一套API来控制无头版或全版Chrome。Puppeteer默认以无头模式运行,但也可以配置为运行“全头”模式。它能够模拟用户的行为,如点击、滚动、导航等,非常适合于自动化测试、生成页面截图或PDF等场景。
环境准备
在开始之前,确保你的开发环境中安装了Node.js和npm(Node包管理器)。接下来,你需要安装TypeScript和Puppeteer。
bash

npm install -D typescript @types/node puppeteer
创建TypeScript配置
创建一个tsconfig.json文件来配置TypeScript编译器的选项:
json

{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
},
"include": ["src/*/"],
"exclude": ["node_modules"]
}
编写自动化脚本
接下来,我们将编写一个简单的自动化脚本,该脚本将启动Chrome浏览器,设置代理,导航到一个指定的URL,并捕获页面的截图。

  1. 启动Chrome浏览器实例
    首先,我们需要启动一个Chrome浏览器实例,并设置代理。
    typescript

import puppeteer from 'puppeteer';

const proxyHost = "www.16yun.cn";
const proxyPort = "5445";
const proxyUser = "16QMSOML";
const proxyPass = "280651";

async function launchBrowser() {
const browser = await puppeteer.launch({
headless: false, // 设置为非无头模式,以便我们可以看到浏览器操作
slowMo: 50, // 减慢操作速度,便于观察
args: [
--proxy-server=http://${proxyUser}:${proxyPass}@${proxyHost}:${proxyPort},
'--proxy-bypass-list=*',
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage',
],
});
return browser;
}

  1. 导航到指定URL
    启动浏览器后,我们需要创建一个新的页面并导航到指定的URL。
    typescript

async function navigateToUrl(url: string, browser: puppeteer.Browser) {
const page = await browser.newPage();
await page.goto(url, { waitUntil: 'networkidle0' });
return page;
}

  1. 捕获页面截图
    在页面加载完成后,我们可以捕获页面的截图。
    typescript

async function captureScreenshot(page: puppeteer.Page) {
await page.screenshot({ path: 'screenshot.png' });
}

  1. 关闭浏览器
    最后,不要忘记关闭浏览器实例以释放资源。
    typescript

async function closeBrowser(browser: puppeteer.Browser) {
await browser.close();
}

  1. 整合脚本
    将上述函数整合到一个主函数中,并运行。
    typescript

async function main() {
const browser = await launchBrowser();
const page = await navigateToUrl('https://www.example.com', browser);
await captureScreenshot(page);
await closeBrowser(browser);
}

main();
运行脚本
保存上述代码到src目录下的一个文件中,例如自动化脚本.ts。然后,使用以下命令编译并运行TypeScript脚本:
bash

tsc && node dist/自动化脚本.js
总结
通过上述步骤,我们成功创建了一个使用TypeScript和Puppeteer的Chrome浏览器自动化脚本,该脚本集成了代理设置。这个脚本能够启动Chrome浏览器,设置代理,导航到指定的URL,并捕获页面的截图。这只是Puppeteer强大功能的冰山一角,你可以根据需要扩展更多的功能,如表单填写、链接点击、PDF生成等。

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
1月前
|
人工智能 监控 Kubernetes
77_自动化脚本:Makefile与Airflow
在当今AI大模型时代,高效的工作流管理对于模型训练、推理和部署至关重要。随着大模型规模的不断增长和复杂度的提升,传统的手动脚本管理方式已无法满足需求。自动化脚本和工作流调度系统成为构建健壮、可重复、可扩展的LLM Pipeline的关键工具。其中,Makefile作为经典的自动化构建工具,与Airflow作为现代工作流调度平台的结合,为LLM开发团队提供了强大的工作流管理能力。
|
3月前
|
传感器 人工智能 JavaScript
Playwright实战:写UI自动化脚本,速度直接起飞
简介: 测试工程师老王因UI自动化问题深夜奋战,反映出传统测试工具的局限性。微软开源的Playwright凭借智能等待、跨域操作、移动端模拟与网络拦截等强大功能,正迅速取代Selenium,成为新一代自动化测试标准。其稳定高效的设计显著降低维护成本,助力企业构建高质量测试流程。
|
5月前
|
机器学习/深度学习 Kubernetes 监控
Kubernetes 节点故障自愈方案:结合 Node Problem Detector 与自动化脚本
本文深入探讨了Kubernetes节点故障自愈方案,结合Node Problem Detector(NPD)与自动化脚本,提供技术细节、完整代码示例及实战验证。文章分析了硬件、系统和内核层面的典型故障场景,指出现有监控体系的局限性,并提出基于NPD的实时事件捕获与自动化诊断树的改进方案。通过深度集成NPD、设计自动化修复引擎以及展示内核死锁恢复的实战案例,文章详细说明了自愈流程的实现步骤与性能优势。此外,还提供了生产环境部署指南、高可用架构设计及安全防护措施,并展望了机器学习增强故障预测和混沌工程验证的进阶优化方向。全文约1.2万字,适合希望提升Kubernetes集群稳定性的技术人员阅读。
308 1
|
10月前
|
Web App开发 人工智能 JSON
AutoMouser:AI Chrome扩展程序,实时跟踪用户的浏览器操作,自动生成自动化操作脚本
AutoMouser是一款Chrome扩展程序,能够实时跟踪用户交互行为,并基于OpenAI的GPT模型自动生成Selenium测试代码,简化自动化测试流程。
711 17
AutoMouser:AI Chrome扩展程序,实时跟踪用户的浏览器操作,自动生成自动化操作脚本
|
8月前
|
关系型数据库 Shell 网络安全
定期备份数据库:基于 Shell 脚本的自动化方案
本篇文章分享一个简单的 Shell 脚本,用于定期备份 MySQL 数据库,并自动将备份传输到远程服务器,帮助防止数据丢失。
|
Web App开发 数据采集 存储
WebDriver与Chrome DevTools Protocol:如何在浏览器自动化中提升效率
本文探讨了如何利用Chrome DevTools Protocol (CDP) 与 Selenium WebDriver 提升浏览器自动化效率,结合代理IP技术高效采集微博数据。通过CDP,开发者可直接操作浏览器底层功能,如网络拦截、性能分析等,增强控制精度。示例代码展示了如何设置代理IP、cookie及user-agent来模拟真实用户行为,提高数据抓取成功率与稳定性。适用于需要频繁抓取互联网数据的应用场景。
1297 3
WebDriver与Chrome DevTools Protocol:如何在浏览器自动化中提升效率
|
Web App开发 JSON 安全
Chrome浏览器的跨域问题
【10月更文挑战第6天】
2213 123
|
Web App开发 存储 前端开发
Chrome浏览器的跨域问题
Chrome浏览器的跨域问题
873 128
|
Web App开发 JavaScript 前端开发
使用 Chrome 浏览器的内存分析工具来检测 JavaScript 中的内存泄漏
【10月更文挑战第25天】利用 Chrome 浏览器的内存分析工具,可以较为准确地检测 JavaScript 中的内存泄漏问题,并帮助我们找出潜在的泄漏点,以便采取相应的解决措施。
1425 9

热门文章

最新文章