新手教程 | Python自动化测试Selenium+chrome连接HTTP代理(账密+白名单)

简介: 虽然 Selenium 主要用于网站的前端测试,但其核心是浏览器用户代理库。本次来说说,Python使用Selenium调用Chrome浏览器并通过HTTP代理进行自动化测试

Selenium 有很多功能, 但其核心是 web 浏览器自动化的一个工具集,它允许用户模拟终端用户执行的常见活动;将文本输入到字段中,选择下拉值和复选框,并单击文档中的链接。 它还提供许多其他控件,比如鼠标移动、任意 JavaScript 执行等等。

虽然 Selenium 主要用于网站的前端测试,但其核心是浏览器用户代理库。本次来说说,Python使用Selenium调用Chrome浏览器并通过HTTP代理进行自动化测试:

白名单模式代码示例:

fromseleniumimportwebdriverfromselenium.webdriver.chrome.serviceimportServicetargetURL="http://myip.ipip.net"#访问的目标站点proxyAddr="您的代理IP:端口号"if__name__=='__main__':
browser_location=r".\Chrome\chrome.exe"#指定浏览器路径位置driver_location=r".\Chrome\chromedriver.exe"#指定Driver路径位置option=webdriver.ChromeOptions()
option.binary_location=browser_location#设置浏览器位置option.add_argument("--start-maximized") #窗口最大化运行option.add_argument('--proxy-server=%(server)s'% {"server": proxyAddr})
driver=webdriver.Chrome(service=Service(driver_location), options=option)
driver.get(targetURL)
print(driver.page_source)

运行结果:

账密模式代码如下:

fromseleniumimportwebdriverfromselenium.webdriver.chrome.serviceimportServiceimportstringimportzipfiletargetURL="http://d.qg.net/ip"#访问的目标站点proxyHost="您的代理IP"proxyPort="端口号"authKey="请改成您的Key"password="请改成您的AuthPwd"# 账密模式defcreate_proxy_auth_extension(proxy_host, proxy_port, proxy_username, proxy_password, scheme='http', plugin_path=None):
ifplugin_pathisNone:
plugin_path=r'./{}_{}_qgnet_proxyauth_plugin.zip'.format(proxy_username, proxy_password)
manifest_json="""        {            "version": "1.0.0",            "manifest_version": 2,            "name": "QG.NET Proxy",            "permissions": [                "proxy",                "tabs",                "unlimitedStorage",                "storage",                "",                "webRequest",                "webRequestBlocking"            ],            "background": {                "scripts": ["background.js"]            },            "minimum_chrome_version":"22.0.0"        }        """background_js=string.Template(
"""        var config = {            mode: "fixed_servers",            rules: {                singleProxy: {                    scheme: "${scheme}",                    host: "${host}",                    port: parseInt(${port})                },                bypassList: ["localhost"]            }          };        chrome.proxy.settings.set({value: config, scope: "regular"}, function() {});        function callbackFn(details) {            return {                authCredentials: {                    username: "${username}",                    password: "${password}"                }            };        }        chrome.webRequest.onAuthRequired.addListener(            callbackFn,            {urls: [""]},            ['blocking']        );        """    ).substitute(
host=proxy_host,
port=proxy_port,
username=proxy_username,
password=proxy_password,
scheme=scheme,
    )
withzipfile.ZipFile(plugin_path, 'w') aszp:
zp.writestr("manifest.json", manifest_json)
zp.writestr("background.js", background_js)
returnplugin_pathif__name__=='__main__':
# browser_location = r"C:\Users\Administrator\Desktop\Chrome\chrome.exe"  # 指定浏览器路径位置driver_location=r"C:\Users\Administrator\Desktop\Chrome\chromedriver.exe"# 指定Driver路径位置proxy_auth_plugin_path=create_proxy_auth_extension(
proxy_host=proxyHost,
proxy_port=proxyPort,
proxy_username=authKey,
proxy_password=password)
option=webdriver.ChromeOptions()
# option.binary_location = browser_location #设置浏览器位置option.add_argument("--start-maximized") #窗口最大化运行option.add_extension(proxy_auth_plugin_path) #添加proxy插件driver=webdriver.Chrome(service=Service(driver_location), options=option)
driver.get(targetURL)
print(driver.page_source)

返回结果如下:

相关文章
|
人工智能 数据可视化 测试技术
Postman 性能测试教程:快速上手 API 压测
本文介绍API上线后因高频调用导致服务器告警,通过Postman与Apifox进行压力测试排查性能瓶颈。对比两款工具在批量请求、断言验证、可视化报告等方面的优劣,探讨API性能优化策略及行业未来发展方向。
Postman 性能测试教程:快速上手 API 压测
|
安全 JavaScript 开发者
Python 自动化办公神器|一键转换所有文档为 PDF
本文介绍一个自动化批量将 Word、Excel、PPT、TXT、HTML 及图片转换为 PDF 的 Python 脚本。支持多格式识别、错误处理与日志记录,适用于文档归档、报告整理等场景,大幅提升办公效率。仅限 Windows 平台,需安装 Office 及相关依赖。
732 0
|
JSON JavaScript 测试技术
用Postman玩转电商API:一键测试+自动化请求教程
Postman 是电商 API 测试的高效工具,涵盖基础配置、自动化测试、环境管理与请求自动化,助你快速提升开发效率。
|
存储 数据采集 监控
Python定时爬取新闻网站头条:从零到一的自动化实践
在信息爆炸时代,本文教你用Python定时爬取腾讯新闻头条,实现自动化监控。涵盖请求、解析、存储、去重、代理及异常通知,助你构建高效新闻采集系统,适用于金融、电商、媒体等场景。(238字)
1862 2
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
2478 10
|
监控 测试技术 API
n8n自动化测试教程 (1):环境搭建与初识n8n
n8n是一款开源、可视化的工作流自动化工具,测试工程师可通过拖拽节点快速构建API测试流程,实现测试编排、数据管理、自动化监控与告警等功能,提升测试效率与覆盖率。
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。
|
JSON 安全 测试技术
什么是API接口测试?这可能是全网最全的教程了!
API 是应用程序间的“中间人”,用于实现通信和数据交换。随着微服务架构的普及,API 数量激增,其质量对系统稳定性至关重要。API 测试可验证功能、性能与安全性,帮助开发者在部署前发现并修复问题,提升系统可靠性。测试内容包括请求方法、URL、请求头、请求体、响应状态码与响应数据等。常用工具如 Postman、AREX 可辅助测试,确保 API 在不同场景下的正确性与稳定性。
|
存储 数据采集 数据可视化
Python自动化分析知网文献:爬取、存储与可视化
Python自动化分析知网文献:爬取、存储与可视化
|
数据采集 存储 监控
Python爬虫自动化:定时监控快手热门话题
Python爬虫自动化:定时监控快手热门话题

热门文章

最新文章

推荐镜像

更多