C# Sendkeys在使用Appium的Winappdriver中不工作

C# Sendkeys在使用Appium的Winappdriver中不工作,c#,appium,appium-desktop,winappdriver,C#,Appium,Appium Desktop,Winappdriver,我正在使用C语言中的Appium,使用WinAppDriver自动化桌面应用程序。我面临的问题是,键盘交互的所有代码都不起作用,比如setText、keys.ArrowDown等等。起初,它工作得非常好,但从过去几天开始,它完全停止了工作。 有人能建议怎么做吗 using OpenQA.Selenium; using OpenQA.Selenium.Appium.Windows; using System; namespace UITest { public class Test {

我正在使用C语言中的Appium,使用WinAppDriver自动化桌面应用程序。我面临的问题是,键盘交互的所有代码都不起作用,比如setText、keys.ArrowDown等等。起初,它工作得非常好,但从过去几天开始,它完全停止了工作。 有人能建议怎么做吗

using OpenQA.Selenium;
using OpenQA.Selenium.Appium.Windows;
using System;

namespace UITest
{
public class Test
{
    public string Name { get; set; } = string.Format("A_EN_{0}", DateTime.Now.Ticks.ToString());
    public string Description { get; set; } = string.Format("A_ED_{0}", DateTime.Now.Ticks.ToString());
    private readonly Records records = null;
    public Test()
    {
        records = new Records();
    }

    public void SetValue(string fieldName, string value = "", bool pressTab = true)
    {
        string propValue;
        if (!string.IsNullOrWhiteSpace(value))
        {
            propValue = value;
        }
        else
        {
            propValue = Common.GetPropValue(this, fieldName).ToString();
        }
        switch (fieldName)
        {
            case "Name":
                Common.RE7Session.FindElementByAccessibilityId("30").SendKeys(propValue);
                break;
            case "Description":
                Common.RE7Session.FindElementByAccessibilityId("18").SendKeys(propValue);
                break;
        }
        if (pressTab)
        {
            Common.SendKeys(Keys.Tab);
        }
    }

      public void AddEvent(Common.SaveOptions saveOptions = Common.SaveOptions.None)
    {
        Common.RE7Session.OpenFunctionalArea("Records");
        records.OpenTask("Events");
        Common.RE7Session.FindElementByName("New Event").Click();
        Common.RE7Session.SwitchWindowWithWait(3);
        this.SetValue(nameof(this.Name));
        this.SetValue(nameof(this.Description));
        Common.RE7Session.SetText("test");
        Common.SendKeys(Keys.ArrowDown);
        Common.RE7Session.PressTab();
        Common.RE7Session.SetText(new Random().Next(10000, 99999).ToString(), false);

    }   
在这里,在最后一行代码中,SetText,按tab,Key.arrow down,所有这些都不起作用。以下是按Tab键和Send键的方法:

public static void PressTab(this WindowsDriver<WindowsElement> RE7Session, int iteration = 1)
    {
        for (int i = 0; i < iteration; i++)
        {
            Common.SendKeys(Keys.Tab);
        }
    }

public static void SendKeys(string keysToSend)
    {
        System.Windows.Forms.SendKeys.SendWait(ReplaceKeyCode(keysToSend));
        Sleep(100);
    }

private static string ReplaceKeyCode(string keys)
    {
        keys = keys.Trim('+');
        //Action characters like tab, arrow down and etc
        keys = keys.Replace(Keys.Backspace, "{BACKSPACE}");
        keys = keys.Replace(Keys.Delete, "{DELETE}");
        keys = keys.Replace(Keys.ArrowDown, "{DOWN}");
        keys = keys.Replace(Keys.End, "{END}");
        keys = keys.Replace(Keys.Enter, "{ENTER}");
        keys = keys.Replace(Keys.Escape, "{ESC}");
        keys = keys.Replace(Keys.Help, "{HELP}");
        keys = keys.Replace(Keys.Home, "{HOME}");
        keys = keys.Replace(Keys.Insert, "{INSERT}");
        keys = keys.Replace(Keys.ArrowLeft, "{LEFT}");
        keys = keys.Replace(Keys.PageDown, "{PGDN}");
        keys = keys.Replace(Keys.PageUp, "{PGUP}");
        keys = keys.Replace(Keys.ArrowRight, "{RIGHT}");
        keys = keys.Replace(Keys.Tab, "{TAB}");
        keys = keys.Replace(Keys.ArrowUp, "{UP}");
        keys = keys.Replace(Keys.F1, "{F1}");
        keys = keys.Replace(Keys.F2, "{F2}");
        keys = keys.Replace(Keys.F3, "{F3}");
        keys = keys.Replace(Keys.F4, "{F4}");
        keys = keys.Replace(Keys.F5, "{F5}");
        keys = keys.Replace(Keys.F6, "{F6}");
        keys = keys.Replace(Keys.F7, "{F7}");
        keys = keys.Replace(Keys.F8, "{F8}");
        keys = keys.Replace(Keys.F9, "{F9}");
        keys = keys.Replace(Keys.F10, "{F10}");
        keys = keys.Replace(Keys.F11, "{F11}");
        keys = keys.Replace(Keys.F12, "{F12}");
        keys = keys.Replace(Keys.Add, "{ADD}");
        keys = keys.Replace(Keys.Subtract, "{SUBTRACT}");
        keys = keys.Replace(Keys.Multiply, "{MULTIPLY}");
        keys = keys.Replace(Keys.Divide, "{DIVIDE}");

        //Special Keys like control, shift and alt
        keys = keys.Replace(Keys.Control, "^");
        keys = keys.Replace(Keys.LeftControl, "^");
        keys = keys.Replace(Keys.Shift, "+");
        keys = keys.Replace(Keys.LeftShift, "+");
        keys = keys.Replace(Keys.Alt, "%");
        keys = keys.Replace(Keys.LeftAlt, "%");
        return keys;
    }
public static void按Tab键(此WindowsDriver RE7会话,int迭代=1)
{
for(int i=0;i
库中发生了一些更改,因此直接键。[key]无法工作。因此,我使用上面的relaceKeyCode方法对键进行了更改。但这仍然不起作用