如何解决Appium WinAppDriver FindElement 不工作错误 400,错误的请求
我正在创建用于演示的概念验证 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 举报,一经查实,本站将立刻删除。