Commit da5239f4 by 施晓雨

更新代码测试

parent da58093e
using Kivii.WebDriver;
using Kivii.WebDriver.Actions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Kivii.Test.WebDriver
{
internal class MyJsAction:ActionBase
{
public string Js { get; set; }
public override string Execute(Manager manager)
{
try
{
var value=manager.ExecuteScript(Js);
return value;
}
catch (Exception ex)
{
throw ex;
}
}
}
}
using Kivii.WebDriver;
using OpenQA.Selenium;
using Kivii.WebDriver.Actions;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Support.Events;
using System;
using System.Threading;
using System.Windows.Forms;
namespace Kivii.Test.WebDriver
......@@ -21,6 +20,7 @@ namespace Kivii.Test.WebDriver
private void appendMsg(string msg)
{
rtbMsg.AppendText($"{msg}{Environment.NewLine}");
rtbMsg.ScrollToCaret();
}
#region 事件
......@@ -164,8 +164,14 @@ namespace Kivii.Test.WebDriver
serviceUrl = $"http://driver.{cbxBrowserType.Text}.selenium.kivii.org";
}
}
_manager.Initialize(cbxBrowserType.Text, serviceUrl);
addListener();
if (_manager.Initialize(cbxBrowserType.Text, serviceUrl))
{
addListener();
}
else
{
appendMsg("初始化失败,可能是未能成功连接WebDriver驱动!");
}
}
private void btnClose_Click(object sender, EventArgs e)
{
......@@ -182,7 +188,7 @@ namespace Kivii.Test.WebDriver
_manager?.Screenshot(sfd.FileName);
}
private void btnInjectionScript_Click(object sender, EventArgs e)
private void btnLoadScript_Click(object sender, EventArgs e)
{
_manager?.LoadScript(tbxScriptPath.Text);
}
......@@ -265,7 +271,6 @@ namespace Kivii.Test.WebDriver
{
rtbEngineScript.AppendText($"{cbScriptTip.Text}{Environment.NewLine}");
}
#endregion
......@@ -287,5 +292,79 @@ namespace Kivii.Test.WebDriver
}
driver.Quit();
}
private void btnInjection_Click(object sender, EventArgs e)
{
//向Manager中注入一个变量,可以在引擎执行代码中调用,变量名为tbxVarName中配置的
//这个功能可以注入一个服务器端存储或读取数量的类,方便交互,
//在引擎代码中可以直接调用test.MessageBox("内容")来与主程序交互功能
_manager?.Injection(tbxVarName.Text, new InjectionTest());
appendMsg($"注入了变量名为{tbxVarName.Text},可在引擎代码中执行{tbxVarName.Text}.{nameof(InjectionTest.MessageBox)}(\"消息\");或{tbxVarName.Text}.{nameof(InjectionTest.GetValue)}(\"内容\")");
}
#endregion
private void btnTestBaidu_Click_1(object sender, EventArgs e)
{
if(_manager==null) return;
_manager.Maximize();//最大化网页
var baidu = new WebPage(_manager);
baidu.Url = "https://www.baidu.com";
#region 第一步,在输入框内输入内容
var inputAction = new InputAction();
inputAction.Name = "输入查询内容";
inputAction.InputValue = "最近天气";
inputAction.ElementFinder = new ElementFinder("kw", "id");
baidu.Actions.Add(inputAction);
#endregion
#region 第二步点击百度一下查询按键
var clickAction=new ClickAction();
clickAction.Name = "百度一下";
clickAction.ElementFinder = new ElementFinder("su","id");
baidu.Actions.Add(clickAction);
#endregion
#region 第三步从界面上取一些值
var outputAction=new OutputAction();
outputAction.Name = "取当前城市";
//使用XPath
outputAction.ElementFinder = new ElementFinder("/html/body/div[3]/div[3]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[1]/div[2]/div[1]/div[1]/div/div[1]");
outputAction.Attributes.Add("innerText", "所在城市");
baidu.Actions.Add(outputAction);
#endregion
#region 第四步从界面上取天气
var outputAction2 = new OutputAction();
outputAction2.Name = "取天气";
//使用XPath
outputAction2.ElementFinder = new ElementFinder(".weather-main-temp_6CEpK > span:nth-child(1)","css");
outputAction2.Attributes.Add("innerText", "天气");
baidu.Actions.Add(outputAction2);
#endregion
#region 第五步:测试下本地Action
var jsAction = new MyJsAction();
jsAction.Name = "测试JS返回";
//使用XPath
jsAction.Js = "return '测试JS返回';";
baidu.Actions.Add(jsAction);
#endregion
var result =baidu.Execute();
appendMsg($"执行结果:{Environment.NewLine}{result}");
}
}
#region 注入的对象
internal class InjectionTest
{
public void MessageBox(string msg)
{
System.Windows.Forms.MessageBox.Show(msg);
}
public string GetValue(string key)
{
return $"Key={key}";
}
}
#endregion
}
......@@ -35,8 +35,8 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Kivii.WebDriver.V4.7, Version=4.15.2023.11000, Culture=neutral, processorArchitecture=MSIL">
<HintPath>packages\Kivii.WebDriver.4.15.2023.11000\lib\net47\Kivii.WebDriver.V4.7.dll</HintPath>
<Reference Include="Kivii.WebDriver.V4.7, Version=4.15.2023.11010, Culture=neutral, processorArchitecture=MSIL">
<HintPath>packages\Kivii.WebDriver.4.15.2023.11010\lib\net47\Kivii.WebDriver.V4.7.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
......@@ -59,6 +59,7 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Actions\MyAction.cs" />
<Compile Include="FrmMain.cs">
<SubType>Form</SubType>
</Compile>
......
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Kivii.WebDriver" version="4.15.2023.11000" targetFramework="net472" />
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net472" />
<package id="Selenium.Support" version="4.15.0" targetFramework="net472" />
<package id="Selenium.WebDriver" version="4.15.0" targetFramework="net472" />
<package id="System.Drawing.Common" version="7.0.0" targetFramework="net472" />
<package id="Selenium.WebDriver.ChromeDriver" version="119.0.6045.10500" targetFramework="net472" />
<package id="Selenium.WebDriver.GeckoDriver.Win64" version="0.33.0" targetFramework="net472" />
<package id="Selenium.WebDriver.IEDriver" version="4.14.0" targetFramework="net472" />
<package id="Selenium.WebDriver.MSEdgeDriver" version="118.0.2088.41" targetFramework="net472" />
<package id="Kivii.WebDriver" version="4.15.2023.11010" targetFramework="net472" />
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net472" />
<package id="Selenium.Support" version="4.15.0" targetFramework="net472" />
<package id="Selenium.WebDriver" version="4.15.0" targetFramework="net472" />
<package id="Selenium.WebDriver.ChromeDriver" version="119.0.6045.10500" targetFramework="net472" />
<package id="Selenium.WebDriver.GeckoDriver.Win64" version="0.33.0" targetFramework="net472" />
<package id="Selenium.WebDriver.IEDriver" version="4.14.0" targetFramework="net472" />
<package id="Selenium.WebDriver.MSEdgeDriver" version="118.0.2088.41" targetFramework="net472" />
<package id="System.Drawing.Common" version="7.0.0" targetFramework="net472" />
</packages>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment