C# FindElement不';我找不到任何关于阿皮姆的东西

C# FindElement不';我找不到任何关于阿皮姆的东西,c#,winforms,appium,appium-desktop,C#,Winforms,Appium,Appium Desktop,使用以下测试方法(此处为问题简化,请忽略设计问题,因为这不是实际代码) [TestClass] 公共类登录测试 { 受保护的静态Windows驱动程序会话; [测试方法] 使用有效密码登录的公共无效登录 { if(会话==null) { var options=新应用程序选项(); options.AddAdditionalCapability(“app”,@“D:\myApp.exe”); 选项。添加附加功能(“deviceName”、“WindowsPC”); 会话=新的WindowsDri

使用以下测试方法(此处为问题简化,请忽略设计问题,因为这不是实际代码)

[TestClass]
公共类登录测试
{
受保护的静态Windows驱动程序会话;
[测试方法]
使用有效密码登录的公共无效登录
{
if(会话==null)
{
var options=新应用程序选项();
options.AddAdditionalCapability(“app”,@“D:\myApp.exe”);
选项。添加附加功能(“deviceName”、“WindowsPC”);
会话=新的WindowsDriver(新Uri(WindowsApplicationDriverUrl),选项);
Assert.IsNotNull(会话);
session.Manage().Timeouts().ImplicitWait=TimeSpan.FromSeconds(1.5);
}
//安排
字符串username=“username”;
var txtUsername=session.FindElementByName(“txtUsername”);
//表演
//待开发
//断言
arenequal(用户名,txtUsername.Text);
}
}
我在UI中找不到任何元素,测试运行时应用程序会正确启动(后台运行
WinAppDriver
),但无论我如何尝试在屏幕上查找元素,都会收到相同的错误消息

“错误”:“没有此类元素”

“消息”:“无法使用给定的搜索参数在页面上找到元素。”

更新1 根据下面的第一条注释,我使用
inspect.exe
确认屏幕上我试图获取的元素的名称,而nop,我在测试中找不到它。


您是否使用inspect或UISpy来确保查找的名称正确?您是否尝试通过添加Wait命令来运行代码?我的代码中有1.5秒的隐式等待,我已将其增加到10秒以进行测试。此外,我正在加载屏幕后使用
立即窗口
进行测试,因此,假设代码正确,应该在该点找到元素。我想。。。
[TestClass]
public class LoginTests
{
    protected static WindowsDriver<WindowsElement> session;

    [TestMethod]
    public void Login_WithValidCredentials_Logsin()
    {
        if (session == null)
        {
            var options = new AppiumOptions();
            options.AddAdditionalCapability("app", @"D:\myApp.exe");
            options.AddAdditionalCapability("deviceName", "WindowsPC");
            session = new WindowsDriver<WindowsElement>(new Uri(WindowsApplicationDriverUrl), options);
            Assert.IsNotNull(session);

            session.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(1.5);
        }

        //Arrange
        string username = "username";
        var txtUsername = session.FindElementByName("txtUsername");

        //Act
        //To be developed

        //Assert
        Assert.AreEqual(username, txtUsername.Text);
    }
}