求可点击指定class且文本为33的div元素的Bookmarklet方案
实现点击指定文本内容元素的Bookmarklet方案
方法一:通过类名+文本内容定位
你可以用document.querySelectorAll()获取所有目标类名的元素,遍历后找到文本内容为"33"的元素并触发点击。对应的Bookmarklet代码如下:
javascript:(()=>{const els=document.querySelectorAll('.site-label-text.selectedResource');for(const el of els){if(el.textContent.trim()==='33'){el.click();break;}}})();
- 代码说明:
document.querySelectorAll('.site-label-text.selectedResource'):获取所有同时拥有site-label-text和selectedResource类的元素- 遍历元素时用
trim()处理文本,避免空格干扰匹配结果 - 找到目标元素后执行
click()并跳出循环,防止误点其他同类型元素
方法二:通过XPath定位
如果你已经拿到目标元素的绝对XPath,可直接用document.evaluate()定位元素后点击,对应的Bookmarklet代码:
javascript:(()=>{const el=document.evaluate('/html/body/app-root/mat-sidenav-container/mat-sidenav-content/div[2]/main/app-create-booking/app-search-results/div/div[2]/div/app-map-view/div/div[1]/div/div[2]/div/div[1]/div[4]/div[167]',document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;if(el)el.click();})();
- 注意:绝对XPath依赖页面固定结构,一旦页面布局调整就会失效,优先推荐方法一
内容的提问来源于stack exchange,提问作者Snefferdy
相关产品推荐
相关产品推荐

