# dotNet.seleniumBasic 库模块帮助文档

<details>  <summary>说明</summary>  <p>
只是调用 ChromeDriver 在 aardio 里用 chrome.driver 更简单一些。
aardio 实际不需要任何第三方组件即可调用 ChromeDriver，这是因为 aardio 可以
自动将任意 Web 接口转换为 aardio 对象，所以实现 WebDriver 协议只需要极少的代码。

dotNet.seleniumBasic 基于开源的 SeleniumBasic，
但不再需要注册 COM 控件，不再需要带一堆 DLL，可以生成绿色独立的 EXE 文件。
支持自动检测并配置运行环境，如果没有 .Net 4.x 则自动安装，如果没有 Chrome 则自动安装,
自动匹配 Chrome 版本下载合适的 ChromeDriver 版本，自动配置所有路径参数。

https://github.com/florentbr/SeleniumBasic
https://www.cnblogs.com/ryueifu-VBA/p/13661378.html 

可以用 ILSpy 查看 SeleniumBasic.dll 的源代码
ILSpy 下载： https://github.com/icsharpcode/ILSpy 
SeleniumBasic.dll 使用 aardio 中的程序集合并工具生成。
在 aardio 扩展库管理器中双击 dotNet.merge 可以打开此工具源代码。
</p></details>

## dotNet.seleniumBasic 成员列表 <a id="dotNet.seleniumBasic" href="#dotNet.seleniumBasic">&#x23;</a>

SeleniumBasic 浏览器自动化工具,  
不需要注册 COM 控件，不需要带一堆 DLL，可以生成绿色独立的 EXE 文件。  
自动检测并配置运行环境，如果没有 .Net 4.x 则自动安装，如果没有 Chrome 则自动安装,  
自动匹配 Chrome 版本下载合适的 ChromeDriver 版本，自动配置所有路径参数  

导入此扩展库自动导入全局命名空间 SeleniumBasic

### dotNet.seleniumBasic.CreateDefaultChromeService() <a id="dotNet.seleniumBasic.CreateDefaultChromeService" href="#dotNet.seleniumBasic.CreateDefaultChromeService">&#x23;</a>
创建并返回默认   
SeleniumBasic.ChromeDriverService,SeleniumBasic.ChromeOptions  
注意函数会返回2个值  

如果返回2个值表示已经成功找到或自动安装 Chrome 与 ChromeDriver,  
Chrome 与 ChromeDriver 路径这些已经指定,不用再修改,  
不指定参数@1为 true,默认排除 enable-logging 参数并隐藏控制台,  
失败返回 null

### dotNet.seleniumBasic.CreateDefaultWebDriver <a id="dotNet.seleniumBasic.CreateDefaultWebDriver" href="#dotNet.seleniumBasic.CreateDefaultWebDriver">&#x23;</a>
建议直接用这个函数创建 WebDriver 客户端  
代码量少，自动兼容系统安装的 Chrome 或 Edge Chromium  
没有安装会自动安装

### dotNet.seleniumBasic.CreateDefaultWebDriver() <a id="dotNet.seleniumBasic.CreateDefaultWebDriver" href="#dotNet.seleniumBasic.CreateDefaultWebDriver">&#x23;</a>
[返回对象:dotNetSeleniumBasicIWebDriverObject](#dotNetSeleniumBasicIWebDriverObject)

### dotNet.seleniumBasic.CreateDefaultWebDriver(chromeService,ChromeOption) <a id="dotNet.seleniumBasic.CreateDefaultWebDriver" href="#dotNet.seleniumBasic.CreateDefaultWebDriver">&#x23;</a>
不需要指定参数,  
调用 dotNet.seleniumBasic.CreateDefaultChromeService 的返回值也可作为此函数参数

### dotNet.seleniumBasic.IWebDriver() <a id="dotNet.seleniumBasic.IWebDriver" href="#dotNet.seleniumBasic.IWebDriver">&#x23;</a>
创建 WebDriver 客户端  

[返回对象:dotNetSeleniumBasicIWebDriverObject](#dotNetSeleniumBasicIWebDriverObject)

## SeleniumBasic 成员列表 <a id="SeleniumBasic" href="#SeleniumBasic">&#x23;</a>

### SeleniumBasic.CreateDefaultChromeService() <a id="SeleniumBasic.CreateDefaultChromeService" href="#SeleniumBasic.CreateDefaultChromeService">&#x23;</a>
创建并返回默认   
SeleniumBasic.ChromeDriverService,SeleniumBasic.ChromeOptions  
注意函数会返回2个值  

如果返回2个值表示已经成功找到或自动安装 Chrome 与 ChromeDriver,  
Chrome 与 ChromeDriver 路径这些已经指定,不用再修改,  
不指定参数@1为 true,默认排除 enable-logging 参数并隐藏控制台,  
失败返回 null

### SeleniumBasic.CreateDefaultWebDriver <a id="SeleniumBasic.CreateDefaultWebDriver" href="#SeleniumBasic.CreateDefaultWebDriver">&#x23;</a>
建议直接用这个函数创建 WebDriver 客户端  
代码量少，自动兼容系统安装的 Chrome 或 Edge Chromium  
没有安装会自动安装

### SeleniumBasic.CreateDefaultWebDriver() <a id="SeleniumBasic.CreateDefaultWebDriver" href="#SeleniumBasic.CreateDefaultWebDriver">&#x23;</a>
[返回对象:dotNetSeleniumBasicIWebDriverObject](#dotNetSeleniumBasicIWebDriverObject)

### SeleniumBasic.CreateDefaultWebDriver(chromeService,ChromeOption) <a id="SeleniumBasic.CreateDefaultWebDriver" href="#SeleniumBasic.CreateDefaultWebDriver">&#x23;</a>
不需要指定参数,  
调用 dotNet.seleniumBasic.CreateDefaultChromeService 的返回值也可作为此函数参数

### SeleniumBasic.IWebDriver() <a id="SeleniumBasic.IWebDriver" href="#SeleniumBasic.IWebDriver">&#x23;</a>
创建 WebDriver 客户端  

[返回对象:dotNetSeleniumBasicIWebDriverObject](#dotNetSeleniumBasicIWebDriverObject)

## dotNetSeleniumBasicEleObject 成员列表 <a id="dotNetSeleniumBasicEleObject" href="#dotNetSeleniumBasicEleObject">&#x23;</a>

### dotNetSeleniumBasicEleObject.Clear() <a id="dotNetSeleniumBasicEleObject.Clear" href="#dotNetSeleniumBasicEleObject.Clear">&#x23;</a>
清空

### dotNetSeleniumBasicEleObject.Click() <a id="dotNetSeleniumBasicEleObject.Click" href="#dotNetSeleniumBasicEleObject.Click">&#x23;</a>
点击

### dotNetSeleniumBasicEleObject.DeselectAll() <a id="dotNetSeleniumBasicEleObject.DeselectAll" href="#dotNetSeleniumBasicEleObject.DeselectAll">&#x23;</a>
取消选择所有节点

### dotNetSeleniumBasicEleObject.DeselectByIndex(index) <a id="dotNetSeleniumBasicEleObject.DeselectByIndex" href="#dotNetSeleniumBasicEleObject.DeselectByIndex">&#x23;</a>
根据参数@1指定的索引取消选择节点

### dotNetSeleniumBasicEleObject.DeselectByText(Text) <a id="dotNetSeleniumBasicEleObject.DeselectByText" href="#dotNetSeleniumBasicEleObject.DeselectByText">&#x23;</a>
根据参数@1指定的文本取消选择节点

### dotNetSeleniumBasicEleObject.DeselectByValue(Value) <a id="dotNetSeleniumBasicEleObject.DeselectByValue" href="#dotNetSeleniumBasicEleObject.DeselectByValue">&#x23;</a>
根据参数@1指定的 value 值取消选择节点

### dotNetSeleniumBasicEleObject.Displayed <a id="dotNetSeleniumBasicEleObject.Displayed" href="#dotNetSeleniumBasicEleObject.Displayed">&#x23;</a>
是否显示

### dotNetSeleniumBasicEleObject.Enabled <a id="dotNetSeleniumBasicEleObject.Enabled" href="#dotNetSeleniumBasicEleObject.Enabled">&#x23;</a>
是否可用

### dotNetSeleniumBasicEleObject.FindElementByClassName() <a id="dotNetSeleniumBasicEleObject.FindElementByClassName" href="#dotNetSeleniumBasicEleObject.FindElementByClassName">&#x23;</a>
根据参数@1指定的类名查找节点

[返回对象:dotNetSeleniumBasicEleObject](#dotNetSeleniumBasicEleObject)

### dotNetSeleniumBasicEleObject.FindElementByCssSelector() <a id="dotNetSeleniumBasicEleObject.FindElementByCssSelector" href="#dotNetSeleniumBasicEleObject.FindElementByCssSelector">&#x23;</a>
根据参数@1指定的CSS选择器查找节点

[返回对象:dotNetSeleniumBasicEleObject](#dotNetSeleniumBasicEleObject)

### dotNetSeleniumBasicEleObject.FindElementById() <a id="dotNetSeleniumBasicEleObject.FindElementById" href="#dotNetSeleniumBasicEleObject.FindElementById">&#x23;</a>
根据参数@1指定的ID查找节点

[返回对象:dotNetSeleniumBasicEleObject](#dotNetSeleniumBasicEleObject)

### dotNetSeleniumBasicEleObject.FindElementByLinkText() <a id="dotNetSeleniumBasicEleObject.FindElementByLinkText" href="#dotNetSeleniumBasicEleObject.FindElementByLinkText">&#x23;</a>
根据参数@1指定的链接文本查找节点

[返回对象:dotNetSeleniumBasicEleObject](#dotNetSeleniumBasicEleObject)

### dotNetSeleniumBasicEleObject.FindElementByName() <a id="dotNetSeleniumBasicEleObject.FindElementByName" href="#dotNetSeleniumBasicEleObject.FindElementByName">&#x23;</a>
根据参数@1指定的 name 属性查找节点

[返回对象:dotNetSeleniumBasicEleObject](#dotNetSeleniumBasicEleObject)

### dotNetSeleniumBasicEleObject.FindElementByPartialLinkText() <a id="dotNetSeleniumBasicEleObject.FindElementByPartialLinkText" href="#dotNetSeleniumBasicEleObject.FindElementByPartialLinkText">&#x23;</a>
根据参数@1指定的部分链接文本查找节点

[返回对象:dotNetSeleniumBasicEleObject](#dotNetSeleniumBasicEleObject)

### dotNetSeleniumBasicEleObject.FindElementByTagName() <a id="dotNetSeleniumBasicEleObject.FindElementByTagName" href="#dotNetSeleniumBasicEleObject.FindElementByTagName">&#x23;</a>
根据参数@1指定的标签名查找节点

[返回对象:dotNetSeleniumBasicEleObject](#dotNetSeleniumBasicEleObject)

### dotNetSeleniumBasicEleObject.FindElementByXPath() <a id="dotNetSeleniumBasicEleObject.FindElementByXPath" href="#dotNetSeleniumBasicEleObject.FindElementByXPath">&#x23;</a>
根据参数@1指定的XPath查找节点

[返回对象:dotNetSeleniumBasicEleObject](#dotNetSeleniumBasicEleObject)

### dotNetSeleniumBasicEleObject.FindElementsByClassName() <a id="dotNetSeleniumBasicEleObject.FindElementsByClassName" href="#dotNetSeleniumBasicEleObject.FindElementsByClassName">&#x23;</a>
根据参数@1指定的类名查找多个节点

### dotNetSeleniumBasicEleObject.FindElementsByCssSelector() <a id="dotNetSeleniumBasicEleObject.FindElementsByCssSelector" href="#dotNetSeleniumBasicEleObject.FindElementsByCssSelector">&#x23;</a>
根据参数@1指定的CSS选择器查找多个节点

### dotNetSeleniumBasicEleObject.FindElementsById(id) <a id="dotNetSeleniumBasicEleObject.FindElementsById" href="#dotNetSeleniumBasicEleObject.FindElementsById">&#x23;</a>
根据参数@1指定的ID查找多个节点

### dotNetSeleniumBasicEleObject.FindElementsByLinkText(linkText) <a id="dotNetSeleniumBasicEleObject.FindElementsByLinkText" href="#dotNetSeleniumBasicEleObject.FindElementsByLinkText">&#x23;</a>
根据参数@1指定的链接文本查找多个节点

### dotNetSeleniumBasicEleObject.FindElementsByName(Name) <a id="dotNetSeleniumBasicEleObject.FindElementsByName" href="#dotNetSeleniumBasicEleObject.FindElementsByName">&#x23;</a>
根据参数@1指定的 name 属性查找多个节点

### dotNetSeleniumBasicEleObject.FindElementsByPartialLinkText(partialLinkText) <a id="dotNetSeleniumBasicEleObject.FindElementsByPartialLinkText" href="#dotNetSeleniumBasicEleObject.FindElementsByPartialLinkText">&#x23;</a>
根据参数@1指定的部分链接文本查找多个节点

### dotNetSeleniumBasicEleObject.FindElementsByTagName(tagName) <a id="dotNetSeleniumBasicEleObject.FindElementsByTagName" href="#dotNetSeleniumBasicEleObject.FindElementsByTagName">&#x23;</a>
根据参数@1指定的标签名查找多个节点

### dotNetSeleniumBasicEleObject.FindElementsByXPath(xpath) <a id="dotNetSeleniumBasicEleObject.FindElementsByXPath" href="#dotNetSeleniumBasicEleObject.FindElementsByXPath">&#x23;</a>
根据参数@1指定的XPath查找多个节点

### dotNetSeleniumBasicEleObject.IsMultiple <a id="dotNetSeleniumBasicEleObject.IsMultiple" href="#dotNetSeleniumBasicEleObject.IsMultiple">&#x23;</a>
是否为支持多选的下拉框

### dotNetSeleniumBasicEleObject.SelectByIndex() <a id="dotNetSeleniumBasicEleObject.SelectByIndex" href="#dotNetSeleniumBasicEleObject.SelectByIndex">&#x23;</a>
根据参数@1指定的索引选择节点

### dotNetSeleniumBasicEleObject.SelectByText(Text,partialMatch) <a id="dotNetSeleniumBasicEleObject.SelectByText" href="#dotNetSeleniumBasicEleObject.SelectByText">&#x23;</a>
根据参数@1指定的文本选择节点,  
可选用参数@2指定是否使用部分匹配

### dotNetSeleniumBasicEleObject.SelectByValue() <a id="dotNetSeleniumBasicEleObject.SelectByValue" href="#dotNetSeleniumBasicEleObject.SelectByValue">&#x23;</a>
根据参数@1指定的 value 值选择节点

### dotNetSeleniumBasicEleObject.Selected <a id="dotNetSeleniumBasicEleObject.Selected" href="#dotNetSeleniumBasicEleObject.Selected">&#x23;</a>
是否处于勾选状态

### dotNetSeleniumBasicEleObject.SendKeys() <a id="dotNetSeleniumBasicEleObject.SendKeys" href="#dotNetSeleniumBasicEleObject.SendKeys">&#x23;</a>
发送参数 @1 指定的字符串

### dotNetSeleniumBasicEleObject.Size <a id="dotNetSeleniumBasicEleObject.Size" href="#dotNetSeleniumBasicEleObject.Size">&#x23;</a>
返回元素的尺寸

### dotNetSeleniumBasicEleObject.Submit() <a id="dotNetSeleniumBasicEleObject.Submit" href="#dotNetSeleniumBasicEleObject.Submit">&#x23;</a>
提交

### dotNetSeleniumBasicEleObject.Text <a id="dotNetSeleniumBasicEleObject.Text" href="#dotNetSeleniumBasicEleObject.Text">&#x23;</a>
返回元素的内部文本（InnerText）

### dotNetSeleniumBasicEleObject.tagName <a id="dotNetSeleniumBasicEleObject.tagName" href="#dotNetSeleniumBasicEleObject.tagName">&#x23;</a>
返回元素的标签名称

## dotNetSeleniumBasicIWebDriverObject 成员列表 <a id="dotNetSeleniumBasicIWebDriverObject" href="#dotNetSeleniumBasicIWebDriverObject">&#x23;</a>

### dotNetSeleniumBasicIWebDriverObject.CreateWaiter() <a id="dotNetSeleniumBasicIWebDriverObject.CreateWaiter" href="#dotNetSeleniumBasicIWebDriverObject.CreateWaiter">&#x23;</a>
创建等待工具,  
参数 @1 指定超时，以秒为单位，参数不省略  

[返回对象:dotNetSeleniumBasicWaiterObject](#dotNetSeleniumBasicWaiterObject)

### dotNetSeleniumBasicIWebDriverObject.FindElementByClassName() <a id="dotNetSeleniumBasicIWebDriverObject.FindElementByClassName" href="#dotNetSeleniumBasicIWebDriverObject.FindElementByClassName">&#x23;</a>
根据参数 @1 指定的类名查找节点

[返回对象:dotNetSeleniumBasicEleObject](#dotNetSeleniumBasicEleObject)

### dotNetSeleniumBasicIWebDriverObject.FindElementByCssSelector() <a id="dotNetSeleniumBasicIWebDriverObject.FindElementByCssSelector" href="#dotNetSeleniumBasicIWebDriverObject.FindElementByCssSelector">&#x23;</a>
根据参数@1指定的CSS选择器查找节点

[返回对象:dotNetSeleniumBasicEleObject](#dotNetSeleniumBasicEleObject)

### dotNetSeleniumBasicIWebDriverObject.FindElementById() <a id="dotNetSeleniumBasicIWebDriverObject.FindElementById" href="#dotNetSeleniumBasicIWebDriverObject.FindElementById">&#x23;</a>
根据参数@1指定的ID查找节点

[返回对象:dotNetSeleniumBasicEleObject](#dotNetSeleniumBasicEleObject)

### dotNetSeleniumBasicIWebDriverObject.FindElementByLinkText() <a id="dotNetSeleniumBasicIWebDriverObject.FindElementByLinkText" href="#dotNetSeleniumBasicIWebDriverObject.FindElementByLinkText">&#x23;</a>
根据参数@1指定的链接文本查找节点

[返回对象:dotNetSeleniumBasicEleObject](#dotNetSeleniumBasicEleObject)

### dotNetSeleniumBasicIWebDriverObject.FindElementByName() <a id="dotNetSeleniumBasicIWebDriverObject.FindElementByName" href="#dotNetSeleniumBasicIWebDriverObject.FindElementByName">&#x23;</a>
根据参数@1指定的 name 属性查找节点

[返回对象:dotNetSeleniumBasicEleObject](#dotNetSeleniumBasicEleObject)

### dotNetSeleniumBasicIWebDriverObject.FindElementByPartialLinkText() <a id="dotNetSeleniumBasicIWebDriverObject.FindElementByPartialLinkText" href="#dotNetSeleniumBasicIWebDriverObject.FindElementByPartialLinkText">&#x23;</a>
根据参数@1指定的部分链接文本查找节点

[返回对象:dotNetSeleniumBasicEleObject](#dotNetSeleniumBasicEleObject)

### dotNetSeleniumBasicIWebDriverObject.FindElementByTagName() <a id="dotNetSeleniumBasicIWebDriverObject.FindElementByTagName" href="#dotNetSeleniumBasicIWebDriverObject.FindElementByTagName">&#x23;</a>
根据参数@1指定的标签名查找节点

[返回对象:dotNetSeleniumBasicEleObject](#dotNetSeleniumBasicEleObject)

### dotNetSeleniumBasicIWebDriverObject.FindElementByXPath() <a id="dotNetSeleniumBasicIWebDriverObject.FindElementByXPath" href="#dotNetSeleniumBasicIWebDriverObject.FindElementByXPath">&#x23;</a>
根据参数@1指定的XPath查找节点

[返回对象:dotNetSeleniumBasicEleObject](#dotNetSeleniumBasicEleObject)

### dotNetSeleniumBasicIWebDriverObject.FindElementsByClassName() <a id="dotNetSeleniumBasicIWebDriverObject.FindElementsByClassName" href="#dotNetSeleniumBasicIWebDriverObject.FindElementsByClassName">&#x23;</a>
根据参数@1指定的类名查找多个节点

### dotNetSeleniumBasicIWebDriverObject.FindElementsByCssSelector() <a id="dotNetSeleniumBasicIWebDriverObject.FindElementsByCssSelector" href="#dotNetSeleniumBasicIWebDriverObject.FindElementsByCssSelector">&#x23;</a>
根据参数@1指定的CSS选择器查找多个节点

### dotNetSeleniumBasicIWebDriverObject.FindElementsById(id) <a id="dotNetSeleniumBasicIWebDriverObject.FindElementsById" href="#dotNetSeleniumBasicIWebDriverObject.FindElementsById">&#x23;</a>
根据参数@1指定的ID查找多个节点

### dotNetSeleniumBasicIWebDriverObject.FindElementsByLinkText(linkText) <a id="dotNetSeleniumBasicIWebDriverObject.FindElementsByLinkText" href="#dotNetSeleniumBasicIWebDriverObject.FindElementsByLinkText">&#x23;</a>
根据参数@1指定的链接文本查找多个节点

### dotNetSeleniumBasicIWebDriverObject.FindElementsByName(Name) <a id="dotNetSeleniumBasicIWebDriverObject.FindElementsByName" href="#dotNetSeleniumBasicIWebDriverObject.FindElementsByName">&#x23;</a>
根据参数@1指定的 name 属性查找多个节点

### dotNetSeleniumBasicIWebDriverObject.FindElementsByPartialLinkText(partialLinkText) <a id="dotNetSeleniumBasicIWebDriverObject.FindElementsByPartialLinkText" href="#dotNetSeleniumBasicIWebDriverObject.FindElementsByPartialLinkText">&#x23;</a>
根据参数@1指定的部分链接文本查找多个节点

### dotNetSeleniumBasicIWebDriverObject.FindElementsByTagName(tagName) <a id="dotNetSeleniumBasicIWebDriverObject.FindElementsByTagName" href="#dotNetSeleniumBasicIWebDriverObject.FindElementsByTagName">&#x23;</a>
根据参数@1指定的标签名查找多个节点

### dotNetSeleniumBasicIWebDriverObject.FindElementsByXPath(xpath) <a id="dotNetSeleniumBasicIWebDriverObject.FindElementsByXPath" href="#dotNetSeleniumBasicIWebDriverObject.FindElementsByXPath">&#x23;</a>
根据参数@1指定的XPath查找多个节点

### dotNetSeleniumBasicIWebDriverObject.New_ChromeDriver() <a id="dotNetSeleniumBasicIWebDriverObject.New_ChromeDriver" href="#dotNetSeleniumBasicIWebDriverObject.New_ChromeDriver">&#x23;</a>
启动 ChromeDriver 客户端

### dotNetSeleniumBasicIWebDriverObject.New_ChromeDriver(chromeService,ChromeOption) <a id="dotNetSeleniumBasicIWebDriverObject.New_ChromeDriver" href="#dotNetSeleniumBasicIWebDriverObject.New_ChromeDriver">&#x23;</a>
请使用 dotNet.seleniumBasic.CreateDefaultChromeService 函数  
的返回值作为参数即可

## dotNetSeleniumBasicWaiterObject 成员列表 <a id="dotNetSeleniumBasicWaiterObject" href="#dotNetSeleniumBasicWaiterObject">&#x23;</a>

### dotNetSeleniumBasicWaiterObject.Until <a id="dotNetSeleniumBasicWaiterObject.Until" href="#dotNetSeleniumBasicWaiterObject.Until">&#x23;</a>
等待并返回符合条件的节点

### dotNetSeleniumBasicWaiterObject.Until() <a id="dotNetSeleniumBasicWaiterObject.Until" href="#dotNetSeleniumBasicWaiterObject.Until">&#x23;</a>
[返回对象:dotNetSeleniumBasicEleObject](#dotNetSeleniumBasicEleObject)

### dotNetSeleniumBasicWaiterObject.Until(attributeName,attributeValue) <a id="dotNetSeleniumBasicWaiterObject.Until" href="#dotNetSeleniumBasicWaiterObject.Until">&#x23;</a>
等待指定节点  
@attributeName 参数指定要等待的属性名,  
@attributeValue 参数指定要等待的属性值,  
参数都是字符串，不可省略
