如何用UiPath/JS/.NET/C#点击SharePoint重复文件上传替换按钮
一、JavaScript 实现方式
你之前用的CSS选择器太依赖DOM层级,里面的root-213、css-233这类都是动态生成的类名,页面结构一变就失效,换更稳定的定位逻辑:
// 方式1:通过按钮文本精准定位 const replaceBtn = Array.from(document.querySelectorAll('button')).find(btn => btn.textContent.trim() === '替换'); if (replaceBtn) { replaceBtn.click(); } else { console.log('没找到替换按钮'); } // 方式2:简化CSS选择器(用稳定的父容器类) const replaceBtnSimplified = document.querySelector('.actions_313b4a6d button'); if (replaceBtnSimplified) { replaceBtnSimplified.click(); }
把这段代码放到UiPath的Execute JavaScript活动里执行就行,优先用文本定位,最不容易出错。
二、.NET/C# 实现方式(UiPath Invoke Code活动)
如果习惯用C#,可以在UiPath里加Invoke Code活动,引用Selenium包后用浏览器实例操作:
using OpenQA.Selenium; using OpenQA.Selenium.Chrome; // 从UiPath的Get Browser活动获取driver实例 var driver = (IWebDriver)args["Driver"]; try { // 文本定位 var replaceButton = driver.FindElement(By.XPath("//button[contains(text(), '替换')]")); replaceButton.Click(); } catch (NoSuchElementException) { Console.WriteLine("替换按钮没找到"); } // 或者用简化CSS选择器 // try { // var replaceButton = driver.FindElement(By.CssSelector(".actions_313b4a6d button")); // replaceButton.Click(); // } catch (NoSuchElementException) { // Console.WriteLine("替换按钮没找到"); // }
注意要在Invoke Code的Arguments里把UiPath获取到的浏览器实例传进去,参数名设为Driver,类型选IWebDriver。
三、UiPath原生活动实现(零代码)
这是RPA场景最省心的方式,直接用UiPath自带活动:
- 先加
Wait Element Appear活动,定位器选XPath//button[text()='替换'],超时设10秒,确保弹窗加载完成再操作。 - 再加
Click活动,目标元素用同一个定位器,勾选Simulate Click选项(模态弹窗有时候需要模拟系统级点击才生效)。 - 如果还是不行,换成
Click Text活动,直接输入“替换”,设置匹配方式为“完全匹配”,语言选中文。
内容的提问来源于stack exchange,提问作者Akshay Kumar
相关产品推荐
相关产品推荐

