C# 检查键是否已按下

C# 检查键是否已按下,c#,selenium,C#,Selenium,我有很多测试,我正在使用selenium来运行它们。我正在检查是否按下了Alt键。如果它被按下,我会尝试在Alt上按一个键 然而,当我运行这段代码时,它会一直运行到cki=Console.ReadKey(true)然后挂起直到超时。不知道这条线上为什么会发生这种情况。我的代码如下 Actions action = new Actions(driver); ConsoleKeyInfo cki; Console.TreatControlCAsInp

我有很多测试,我正在使用selenium来运行它们。我正在检查是否按下了Alt键。如果它被按下,我会尝试在Alt上按一个键

然而,当我运行这段代码时,它会一直运行到
cki=Console.ReadKey(true)然后挂起直到超时。不知道这条线上为什么会发生这种情况。我的代码如下

        Actions action = new Actions(driver);
        ConsoleKeyInfo cki;

        Console.TreatControlCAsInput = true;

            while (true)
            {
                action.KeyDown(Keys.Alt).Build().Perform();
                cki = Console.ReadKey(true);
                if ((cki.Modifiers & ConsoleModifiers.Alt) != 0)
                {
                    action.KeyUp(Keys.Alt).Build().Perform();
                }


          }

虽然我从未在Selenium中这样做过,但通常情况下,您会检查是否按下了此键:

if (Keyboard.IsKeyDown(Key.LeftAlt) || Keyboard.IsKeyDown(Key.RightAlt))
这在
System.Windows.Input
命名空间中

Console.ReadKey(true)暂停程序,直到用户按下某个键,然后它将读取该键。在这种情况下,您不需要用户手动按键,因此程序将永远处于暂停状态

在我看来,如果去掉
ReadKey
行,当前的
if
语句应该也能正常工作,但selenium可能会以这些函数无法检测到的方式按键。。。如果清除
ReadKey
有效,或者上述方法有效,请告诉我。如果没有,可能有替代硒溶液