检查按键是否已按下Selenium

时间:2017-05-02 08:41:57

标签: c# selenium

我有很多测试,我正在使用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();
                }


          }

1 个答案:

答案 0 :(得分:0)

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

if (Keyboard.IsKeyDown(Key.LeftAlt) || Keyboard.IsKeyDown(Key.RightAlt))

这是System.Windows.Input名称空间。

Console.ReadKey(true);暂停程序直到用户按下某个键,然后它才会读取该键。在这种情况下,您没有用户手动按下某个键,因此该程序将永远暂停。

IMO似乎你当前的if语句也应该可以正常工作,如果你摆脱了ReadKey行,但是再次硒可能会按这些功能无法检测的方式按键...让我知道如果摆脱ReadKey作品,或上述作品。如果没有,可能会有替代的硒溶液。