c# - 使用 Winapp 驱动程序拖放 UI 元素
问题描述
我在 Visual Studio 中安装了一个插件,可让我创建表单 UI。现在,我正在尝试借助使用 winapp 驱动程序的自动化脚本在表单屏幕上拖放一个元素,但我无法做到这一点。
var FindVSProjectWindow = DesktopSession.FindElementByName("SystemModeler4 - Microsoft Visual Studio (Administrator)");
if (FindVSProjectWindow != null)
{
const int offset = 100;
var FindAttribute = DesktopSession.FindElementByName("VsClassViewMembersPane").FindElementByName("Attribute1");
DesktopSession.Mouse.MouseMove(FindAttribute.Coordinates);
DesktopSession.Mouse.MouseDown(null); // Pass null as this command omit the given parameter
DesktopSession.Mouse.MouseMove(FindAttribute.Coordinates, offset, offset);
DesktopSession.Mouse.MouseUp(null); // Pass null as this command omit the given parameter
Thread.Sleep(TimeSpan.FromSeconds(1));
}
我使用来自 github 的示例尝试了此代码,但没有发生。
解决方案
使用Mouse
andKeyboard
已过时。您应该将 Appium 更新到最新版本并OpenQA.Selenium.Interactions.Actions
改用。
/// <summary>
/// Gets an <see cref="T:OpenQA.Selenium.IMouse" /> object for sending mouse commands to the browser.
/// </summary>
[Obsolete("This property was never intended to be used in user code. Use the Actions or ActionBuilder class to send direct mouse input.")]
public IMouse Mouse
{
get
{
return this.mouse;
}
}
/// <summary>
/// Gets an <see cref="T:OpenQA.Selenium.IKeyboard" /> object for sending keystrokes to the browser.
/// </summary>
[Obsolete("This property was never intended to be used in user code. Use the Actions or ActionBuilder class to send direct keyboard input.")]
public IKeyboard Keyboard
{
get
{
return this.keyboard;
}
}
推荐阅读
- go - 为什么我的 client.go 无法访问 math.go?
- javascript - 用户每天使用 cookie 访问网站 x 分钟后触发操作
- mysql - Mysql DELETE (with NOT IN subselect) not using index and getting ERROR 1205 (HY000): Lock wait timeout exceeded;
- python - 将一个类与python中的字符串相同地散列
- bash - 替换多行“!” 用一个“!”
- dialogflow-es - 无需助手或发件人应用即可与家庭设备交互
- scala - 将 isInstanceOf 类设置为变量
- objective-c - Objective-C:Popover 似乎总是为零
- swift - 蒸汽 3 路由
- webhooks - Circuit Webhooks 有签名吗?