无服务器权限下,如何在Chrome永久修改HTML ID?Power Automate重复ID表单解决方案
解决表单字段ID重复导致Power Automate填错的问题
一、Power Automate内置解决方案(无需修改网页)
不用依赖重复的ID,换以下定位方式就能区分两个字段:
- CSS选择器定位:如果两个字段在不同的父容器里(比如一个在
class="left-field"的div里,另一个在class="right-field"的div里),就用div.left-field input[id="重复的ID"]和div.right-field input[id="重复的ID"]作为定位器。在Power Automate的「填写表单字段」动作里选「自定义」,输入对应的CSS选择器即可。 - XPath索引定位:直接按元素出现的顺序区分,第一个字段用
(//input[@id='重复的ID'])[1],第二个用(//input[@id='重复的ID'])[2]。Power Automate支持在自定义定位中输入XPath。 - 元素索引定位:在Power Automate的浏览器自动化动作里,选择「按索引选择元素」,第一个字段填索引0,第二个填索引1,对应页面上的元素顺序即可。
二、Chrome永久修改HTML ID的方法
Chrome本身无法直接永久修改网页代码,但可以通过用户脚本实现自动修改:
- 安装Tampermonkey浏览器扩展(Chrome应用商店可搜索安装)。
- 点击Tampermonkey图标,新建用户脚本,替换成以下代码(把
目标网站域名换成实际网址,重复的ID换成表单里的重复ID):
// ==UserScript== // @name 自动修改表单字段ID // @match https://目标网站域名/* // @grant none // ==/UserScript== (function() { 'use strict'; const targetInputs = document.querySelectorAll('input[id="重复的ID"]'); if (targetInputs.length >= 2) { targetInputs[0].id = "unique-phone-1"; targetInputs[1].id = "unique-phone-2"; } })();
- 保存脚本后,每次打开目标网页,两个字段的ID会自动被改成唯一值,之后Power Automate就能用新ID正常定位了。
内容的提问来源于stack exchange,提问作者Towfik
相关产品推荐
相关产品推荐

