问题描述
我正在创建用于演示的概念验证 UI 自动化测试。当我使用检查工具查看我想要输入到 AutomationID 的文本框时,它被设置为“Memery”。我写了以下代码:
namespace Tests
{
[TestClass]
public class WpfTest
{
protected const string WindowsApplicationDriverUrl = "http://127.0.0.1:4723";
private const string IAdminInstance = "<filepath>";
protected static WindowsDriver<WindowsElement> session;
[ClassInitialize]
public static void Setup(TestContext context)
{
if (session == null)
{
var appiumOptions = new AppiumOptions();
appiumOptions.AddAdditionalCapability("app",IAdminInstance);
appiumOptions.AddAdditionalCapability("platformName","windows");
appiumOptions.AddAdditionalCapability("automationName","windows");
appiumOptions.AddAdditionalCapability("deviceName","WindowsPC");
session = new WindowsDriver<WindowsElement>(new System.Uri(WindowsApplicationDriverUrl),appiumOptions);
}
}
public static void TearDown()
{
// Close the application and delete the session
if (session != null)
{
session.Quit();
session = null;
}
}
[TestMethod]
public void Test1()
{
var asdf = session.FindElementByWindowsUIAutomation("Memery");
asdf.Click();
int x = 2;
Assert.AreEqual(x,2);
}
}
}
这会导致 WinAppDriver 控制台中出现以下内容:
POST /session HTTP/1.1
Accept: application/json,image/png
Connection: Keep-Alive
Content-Length: 266
Content-Type: application/json; charset=utf-8
Host: 127.0.0.1:4723
User-Agent: selenium/3.141.0 (.net windows)
{"desiredCapabilities":{"app":"D:\\Projects\\gitea\\Kaiser\\Livermore\\KPCommon\\InventoryAdmin\\bin\\Debug\\InventoryAdmin.exe","platformName":"Windows","automationName":"windows","deviceName":"DRAGONITE"},"capabilities":{"firstMatch":[{"platformName":"Windows"}]}}
HTTP/1.1 200 OK
Content-Length: 203
Content-Type: application/json
{"sessionId":"E96DDBBF-F5A1-412E-AF2B-61B4D06CD6DC","status":0,"value":{"app":"D:\\Projects\\gitea\\Kaiser\\Livermore\\KPCommon\\InventoryAdmin\\bin\\Debug\\InventoryAdmin.exe","platformName":"Windows"}}
==========================================
POST /session/E96DDBBF-F5A1-412E-AF2B-61B4D06CD6DC/element HTTP/1.1
Accept: application/json,image/png
Connection: Keep-Alive
Content-Length: 50
Content-Type: application/json; charset=utf-8
Host: 127.0.0.1:4723
User-Agent: selenium/3.141.0 (.net windows)
{"using":"-windows uiautomation","value":"Memery"}
HTTP/1.1 400 Bad Request
Content-Length: 102
Content-Type: application/json
{"status":32,"value":{"error":"invalid selector","message":"Invalid selector: -windows uiautomation"}}
这是我想要的元素的 XAML 代码片段
<Grid Grid.Column="1">
<ViewBox Stretch="Fill" Width="Auto" Height="35">
<TextBox HorizontalAlignment="Stretch" VerticalAlignment="Center"
AutomationProperties.AutomationId="Memery" x:Name="operatorIDEdit" MinWidth="175" Width="Auto"
TabIndex="0" Margin="0,20,0" GotKeyboardFocus="operatorIDEdit_GotKeyboardFocus" />
</ViewBox>
</Grid>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)