RPA执行工具(IAgent)接口简介
这个工具类提供了操作网页的基本方法。如:给元素写入值,点击元素,获取元素值,刷新页面等等。。。
此文档将提供以下功能接口说明
打开新页面
返回上一页
跳转页面
刷新页面
选择框架
切换至主界面
启动页面
准备就绪
查找元素
查找多个元素
点击元素
点击元素(通过Js)
读取文本(指定根元素)
读取文本(通过选择器)
读取属性值(指定根元素)
读取属性值(通过选择器)
编写文本
编写文本(通过属性)
清除
选择选项
上传文件(指定根元素)
上传文件(通过选择器)
滚动至顶部
滚动至底部
向上滚动
滚动至指定位置
收集验证码
执行登录
通过下载地址下载文件
通过元素选择器下载文件
打开新页面
打开指定地址新网页。
接口
async Task OpenPage(string uri);
参数
uri: 新页面地址
用法
await this.IAgent.OpenPage("https://www.baidu.com");
返回上一页
返回上一页
接口
async Task BackPage();
参数
无
用法
await this.IAgent.BackPage();
跳转页面
跳转到指定页面
接口
async Task ForwardPage();
参数
无
用法
await this.IAgent.ForwardPage();
刷新页面
刷新页面
接口
async Task RefreshPage();
参数
无
用法
await this.IAgent.RefreshPage();
选择框架
选择指定iframe
接口
async Task SwitchToFrame(string selector)
参数
selector:指定iframe选择器
用法
// 指定iframe的CSS选择器
string selector = "#iframe";
await this.IAgent.SwitchToFrame(selector)
切换至主界面
返回主界面
接口
async Task SwitchBackToRoot()
参数
无
用法
await this.IAgent.SwitchBackToRoot()
启用页面
切换后可操作页面
接口
async Task EnablePage(bool isEnable);
参数
isEnable:是否启用
用法
// 启用操作页面功能
bool isEnable = true;
await this.IAgent.EnablePage(isEnable);
等待页面加载完成
等待页面加载完成
接口
async Task ReadyToGo();
参数
无
用法
await this.IAgent.OpenPage("https://www.baidu.com");
await this.IAgent.ReadyToGo();
查找元素
查找指定元素
接口
async Task<IElement> FindElement(string selector, IElement root = null);
参数
selector:指定元素的选择器
root:从指定根元素内查找元素
用法
// 指定元素的CSS选择器
string rootSelector = "#rootElement";
// 指定元素的CSS选择器
string selector = "#element";
// 找到根元素
IElement rootElement = await this.IAgent.FindElement(rootSelector);
IElement element = await this.IAgent.FindElement(selector, rootElement);
查找多个元素
查找指定的多个元素
接口
async Task<List<IElement>> FindElements(string selector, IElement root = null);
参数
selector:指定元素的选择器
root:从指定根元素内查找元素
用法
// 指定元素的CSS选择器
string rootSelector = "#rootElement";
// 指定元素的CSS选择器
string selector = "#element";
// 找到根元素
IElement rootElement = await this.IAgent.FindElement(rootSelector);
List<IElement> element = await this.IAgent.FindElements(selector, rootElement);
点击元素
点击指定元素
接口
async Task ClickElement(IElement elemnt, bool byJs = false);
参数
elemnt:目标元素
byJs:是否通过Js
用法
// 指定元素的CSS选择器
string selector = "#element";
IElement element = await this.IAgent.FindElement(selector);
// 通过Js
bool byJs = true;
await this.IAgent.ClickElement(element, byJs);
点击元素(通过Js)
点击指定元素
接口
async Task ClickElement(string selector, bool byJs = false, IElement root = null);
参数
selector:指定元素的选择器
byJs:是否通过Js
root:从指定根元素内查找元素
用法
// 指定元素的CSS选择器
string rootSelector = "#rootElement";
// 指定元素的CSS选择器
string selector = "#element";
// 找到根元素
IElement rootElement = await this.IAgent.FindElement(rootSelector);
// 通过Js
bool byJs = true;
await this.IAgent.ClickElement(selector, byJs, rootElement);
读取文本(通过元素对象)
读取指定元素对象的文本值,直到读取的值不等于untilNot对应的值时,函数会返回值。
接口
async Task<string> ReadText(IElement element, string untilNot = null);
参数
element:目标元素
untilNot:元素默认文本值,当读取的文本不匹配此值时,函数才会返回结果。为null时不会进行匹配
用法
// 指定元素的CSS选择器
string selector = "#element";
// 从指定根元素内查找元素
IElement element = await this.IAgent.FindElement(selector);
string untilNot = "默认值";
string text = await this.IAgent.ReadText(element, untilNot);
读取文本(元素选择器选择器)
读取指定的文本,直到读取的值不等于untilNot对应的值时,函数会返回值。
接口
async Task<string> ReadText(string selector, IElement root = null, string untilNot = null);
参数
selector:指定元素的选择器
root:从指定根元素内查找元素
untilNot:元素默认文本值,当读取的文本不匹配此值时,函数才会返回结果。为null时不会进行匹配
用法
// 指定元素的CSS选择器
string rootSelector = "#rootElement";
// 指定元素的CSS选择器
string selector = "#element";
// 找到根元素
IElement rootElement = await this.IAgent.FindElement(rootSelector);
string untilNot = "默认值";
string text = await this.IAgent.ReadText(selector, rootElement, untilNot);
读取属性值(通过指定根元素)
读取指定的属性值
接口
async Task<string> ReadAttribute(IElement element, string attribute, string untilNot = null);
参数
element:点击指定根元素元素
attribute:属性
untilNot:元素默认文本值,当读取的文本不匹配此值时,函数才会返回结果。为null时不会进行匹配
用法
// 指定元素的CSS选择器
string selector = "#element";
// 从指定根元素内查找元素
IElement element = await this.IAgent.FindElement(selector);
// 属性
string attribute = "data-name";
string untilNot = "默认值";
string attributeValue = await this.IAgent.ReadAttribute(element, attribute, untilNot);
读取属性值(通过选择器)
读取指定的属性值
接口
async Task<string> ReadAttribute(string selector, string attribute, IElement root = null, string untilNot = null);
参数
selector:指定元素的选择器
attribute:属性
root:从指定根元素内查找元素,可以为null
untilNot:元素默认文本值,当读取的文本不匹配此值时,函数才会返回结果。为null时不会进行匹配
用法
// 指定元素的CSS选择器
string rootSelector = "#rootElement";
// 指定元素的CSS选择器
string selector = "#element";
// 找到根元素
IElement rootElement = await this.IAgent.FindElement(rootSelector);
// 属性
string attribute = "data-name";
string untilNot = "默认值";
string attributeValue = await this.IAgent.ReadAttribute(selector, attribute, rootElement, untilNot);
编写文本
编写文本
接口
async Task WriteText(IElement element, string text);
参数
element:点击指定根元素元素
text:需要编写的文本
用法
// 指定元素的CSS选择器
string selector = "#element";
// 从指定根元素内查找元素
IElement element = await this.IAgent.FindElement(selector);
//需要编写的文本
string text = "readText";
await this.IAgent.WriteText(element, text);
编写文本(通过属性)
编写文本
接口
async Task WriteText(IElement element, string attribute, string text);
参数
element:点击指定根元素元素
attribute: 属性
text:需要编写的文本
用法
// 指定元素的CSS选择器
string selector = "#element";
// 从指定根元素内查找元素
IElement element = await this.IAgent.FindElement(selector);
//需要编写的文本
string text = "readText";
//属性
string attribute = "data-name";
await this.IAgent.WriteText(element, attribute, text);
清除
清除元素
接口
async Task Clear(string selector);
参数
selector:指定元素的CSS选择器
用法
// 指定元素的CSS选择器
string selector = "#element";
await this.IAgent.Clear(selector);
选择选项
选择指定元素选项设置
接口
async Task SelectOption(string selector,string option);
参数
selector:指定元素的CSS选择器
option:下拉框中的选项
用法
// 指定元素的CSS选择器
string selector = "#element";
// 下拉框中的选项的值
string option = "value";
await this.IAgent.SelectOption(selector, option);
上传文件(通过指定根元素)
上传文件
接口
async Task PutFile(IElement element, FileInfo file);
参数
element:点击指定根元素元素
file:指定文件
用法
// 指定元素的CSS选择器
string selector = "#element";
// 从指定根元素内查找元素
IElement element = await this.IAgent.FindElement(selector);
// 需要上传的指定文件
FileInfo file = "指定文件";
await this.IAgent.PutFile(element, file);
上传文件(通过选择器)
上传文件
接口
async Task PutFile(string selector, FileInfo file, IElement root = null);
参数
selector:指定元素的选择器
file:指定文件
root:从指定根元素内查找元素
用法
// 指定元素的CSS选择器
string rootSelector = "#rootElement";
// 指定元素的CSS选择器
string selector = "#element";
// 找到根元素
IElement rootElement = await this.IAgent.FindElement(rootSelector);
// 需要上传的指定文件
FileInfo file = "指定文件";
await this.IAgent.PutFile(selector, file, rootElement);
滚动至顶部
滚动至顶部
接口
async Task ScrollToTop();
参数
无
用法
await this.IAgent.ScrollToTop();
滚动至底部
滚动至底部
接口
async Task ScrollToBottom();
参数
无
用法
await this.IAgent.ScrollToBottom();
向上滚动
向上滚动
接口
async Task ScrollUp(int px);
参数
px:向上滚动的距离
用法
//向上滚动的距离
int px = 100;
await this.IAgent.ScrollUp(px);
滚动至指定位置
滚动至指定坐标位置
接口
async Task Scroll(int x, int y);
参数
x:表示你想要置于左上角的像素点的横坐标
y:表示你想要置于左上角的像素点的纵坐标
用法
//表示你想要置于左上角的像素点的横坐标
int x = 100;
//表示你想要置于左上角的像素点的纵坐标
int y = 100;
await this.IAgent.Scroll(x, y);
收集验证码
收集验证码
接口
async Task CollectCaptcha(string selector);
参数
selector:指定元素的CSS选择器
用法
//指定元素的CSS选择器
string selector = "#element";
await this.IAgent.CollectCaptcha(selector);
执行登录
执行时若未找到标记登录成功的元素,授权信息将被重置,下次执行该引擎需重新授权。
接口
async Task PeformLogin(string authKey, string submitSelector, string expectation);
参数
authKey: 授权系统关键字
submitSelector: 确认按钮的Selector
expectation:标记登录成功元素的Selector
用法
// 确认按钮的CSS选择器
string confirmBtn = "#confirmBtn";
// 标记登录成功元素的CSS选择器
string expectation = "#userName";
await this.IAgent.PeformLogin("fyx_system",confirmBtn, expectation);
通过下载地址下载文件
下载指定文件
接口
async Task DownloadFile(string url, string filename, string absFolder = null);
参数
url: 下载的地址
filename: 文件名称
absFolder: 下载至本地的文件夹地址
用法
string url = "https://www.xxxxx.com/filedownload/test.txt";
string filename = "mydownloadtest.txt";
string absFolder = "D:/download";
string file = await this.IAgent.DownloadFile(url, filename, absFolder);
通过元素选择器下载文件
通过元素选择器下载文件,此目标元素必须具备被点击后会激活下载文件能力。
接口
async Task Download(string clickableSelector);
参数
clickableSelector: 元素选择器
用法
// 点击下载按钮的CSS选择器
string clickableSelector = "#download";
string content = await this.IAgent.Download(clickableSelector);