新闻中心

获取 J*aScript 重定向的 URL 而不改变当前页面

2025-10-21
浏览次数:
返回列表

获取 javascript 重定向的 url 而不改变当前页面

本文介绍了一种使用 Selenium 获取由 J*aScript 代码触发的重定向 URL,同时保持在当前页面不跳转的方法。通过修改 J*aScript 代码,将目标 URL 存储到全局变量中,然后使用 Selenium 获取该变量,从而避免页面跳转。该方法适用于按钮触发复杂 J*aScript 函数的情况,绕过直接点击按钮导致页面重定向的问题。

在 Web 自动化测试中,经常会遇到点击按钮后由 J*aScript 代码触发页面重定向的情况。直接使用 driver.current_url 获取 URL 会导致页面跳转,这在某些场景下是不可接受的,例如需要在当前页面继续执行其他操作。本文提供了一种解决方案,通过修改 J*aScript 代码,在不跳转页面的情况下获取目标 URL。

核心思路:

  1. 定位导致重定向的 J*aScript 代码。
  2. 修改 J*aScript 代码,阻止重定向,并将目标 URL 存储到全局变量。
  3. 使用 Selenium 执行 J*aScript 代码,获取全局变量中的 URL。

具体步骤:

步骤 1:定位 J*aScript 代码

首先需要找到负责重定向的 J*aScript 代码。Chrome 开发者工具提供了强大的调试功能,可以帮助我们定位代码。

  1. 打开 Chrome 开发者工具 (F12)。
  2. 切换到 "Sources" (或 "源代码") 标签。
  3. 使用 Event Listener Breakpoints 功能。在 "Event Listener Breakpoints" 面板中,展开 "Script" (或 "脚本"),勾选 "click" 事件。
  4. 点击页面上的目标按钮。
  5. 开发者工具会自动在 J*aScript 代码中暂停,方便我们逐步调试,找到负责重定向的代码。 还可以添加 Event Listener Breakpoints for the load event。

步骤 2:修改 J*aScript 代码

找到负责重定向的代码后,需要修改它,阻止页面跳转,并将目标 URL 存储到全局变量 target_url 中。

例如,如果 J*aScript 代码如下:

window.location.href = "https://www.example.com/new_page";

可以修改为:

AI Surge Cloud AI Surge Cloud

低代码数据分析平台,帮助企业快速交付深度数据

AI Surge Cloud 87 查看详情 AI Surge Cloud
target_url = "https://www.example.com/new_page";
// window.location.href = "https://www.example.com/new_page"; // 注释掉重定向的代码

步骤 3:使用 Resource Override 扩展自动修改 J*aScript 代码

手动修改 J*aScript 代码比较繁琐,可以使用 Chrome 扩展 Resource Override 来自动完成。

Resource Override 允许我们拦截特定的网络请求,并使用本地文件替换响应内容。

  1. 安装 Resource Override 扩展。
  2. 配置 Resource Override,拦截包含重定向代码的 J*aScript 文件。
  3. 使用修改后的 J*aScript 文件替换原始文件。

步骤 4:Selenium 获取 URL

在 Selenium 中,可以使用 driver.execute_script() 方法执行 J*aScript 代码,并获取全局变量 target_url 的值。

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("your_website_url")

# 点击按钮 (假设按钮的 id 是 "my_button")
button = driver.find_element("id", "my_button")
button.click()

# 获取 target_url 的值
my_target_url = driver.execute_script("return target_url;")

print(my_target_url)

driver.quit()

注意事项:

  • 确保在执行 driver.execute_script() 之前,J*aScript 代码已经执行完毕,并且 target_url 已经被赋值。
  • 如果 J*aScript 代码中使用了异步操作,需要等待异步操作完成后再获取 target_url 的值。
  • 如果页面上存在多个按钮触发 J*aScript 重定向,需要为每个按钮设置不同的全局变量名,例如 target_url1、target_url2 等。

总结:

通过修改 J*aScript 代码,我们可以绕过页面重定向,在不改变当前页面的情况下获取目标 URL。这种方法适用于按钮触发复杂 J*aScript 函数的场景,为 Web 自动化测试提供了更大的灵活性。使用 Resource Override 扩展可以自动化修改 J*aScript 代码,提高效率。

以上就是获取 J*aScript 重定向的 URL 而不改变当前页面的详细内容,更多请关注其它相关文章!


# 可选  # 辽宁省项目推广网站查询  # 美食线上推广营销策划  # 网站引流推广句子  # 城厢区网站推广  # seo点击源码2021  # wordpres seo插件  # 海外美妆推广网站有哪些  # 网站建设课程广告词  # 金属材料网站优化公司  # 做百度关键词排名  # 如何实现  # 如何使用  # javascript  # 并将  # 适用于  # 而不  # 可以使用  # 全局变量  # 跳转  # 重定向  # webdriver  # win  # 工具  # java 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 如何创建没有密码的Windows本地账户_跳过微软账户登录的技巧【教程】  微信商城在哪里打开【步骤】  使用 Pandas 高效处理 .dat 文件:数据清洗与数值计算实战  Yandex官方入口网址 Yandex俄罗斯搜索引擎最新在线地址  192.168.1.1管理中心入口 192.168.1.1路由器网页设置平台  电脑IP地址怎么查 查看本机IP地址的几种方法  CSS布局:解决全屏元素100%尺寸与外边距导致的页面溢出问题  C++的std::forward_list怎么用_C++ STL中单向链表容器的特点与应用  12306选座怎么选到特殊座位_12306特殊座位选择注意事项  如何设置Windows Defender的定时扫描_计划任务实现自动杀毒【安全】  漫蛙manwa2最新登录网址_漫蛙manwa2手机网页版入口  163邮箱网页版入口导航平台 163邮箱网页版登录入口官网导航  sublime怎么设置启动时打开的窗口_sublime会话管理与热退出  c++中的std::launder有什么实际用途_c++对象生命周期与指针优化  uc浏览器网页版极速入口 uc网页浏览器网页版流畅体验  React Router v6 教程:构建认证保护的私有路由与重定向策略  c++中为什么推荐使用using替代typedef_c++现代化类型别名  《刺客信条4:黑旗》重制版新细节曝光:无缝加载 地图更细致!  html怎么在cmd下运行php文件_cmd运行html中php文件方法【教程】  J*aScript:在map操作中高效处理空数组  知音漫客正版漫画平台_知音漫客官网账号登录  打开就能玩的植物大战僵尸 植物大战僵尸网页版传送门  如何使用J*aScript精确选择并批量修改特定父元素下子链接的样式  C++如何实现单例模式_C++设计模式之线程安全的单例写法  《马克思佩恩3》早期版本曝光 UI设计曾多次调整!  C#中解析不规范的HTML为XML 常见的坑与解决办法  将HTML Canvas内容转换为可上传的图像文件(File对象)  Highcharts 雷达图径向轴标签定制指南:利用多Y轴实现数值标注  Go语言中对Map值调用带指针接收者方法:原理与最佳实践  如何在CSS中使用visited与link控制链接颜色_visited link伪类配合  《主播少女的秘密账号迷宫》首支宣传片  poki网页游戏推荐_poki免费游戏平台入口  age动漫网站入口 age动漫官网直接访问入口  Pyrogram与g4f集成:异步编程实践与常见错误解决  如何优雅地解决Livewire文件上传难题?SpatieLivewireFilepond让一切变得简单  2306选座时如何选靠窗位置_12306选座靠窗座位查看方法解析  Golang切片为何属于引用类型_Golang slice底层结构与引用语义说明  响应式容器内容自动缩放与宽高比维持教程  QQ邮箱登录平台入口 QQ邮箱网页版邮箱官方入口  C++ explicit关键字防止隐式转换_C++构造函数安全规范  凉拌黄瓜怎么拌更入味 凉拌黄瓜简单家常做法  怎样把文件彻底粉碎无法恢复_Windows下安全删除敏感数据【隐私保护】  解决 Vaadin 8 中大文件音频播放与定位时出现的 IOException  消息称三星明年 2 月正式发布 HBM4,与 SK 海力士同台竞技  抖音极速版最新版本 抖音极速版官方下载地址  Mac怎么锁定备忘录_Mac备忘录加密设置教程  TikTok搜索不到用户发布内容怎么办 TikTok用户内容搜索优化方法  React Hooks最佳实践:动态组件状态管理的组件化方案  照顾宝贝2小游戏免费秒玩入口  Lar*el表单中优雅地处理“返回”按钮以规避验证:最佳实践指南 

搜索