我有很多测试,我正在使用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();
}
}
答案 0 :(得分:0)
虽然我在Selenium
中从未这样做过,但通常会检查是否按下了某个键:
if (Keyboard.IsKeyDown(Key.LeftAlt) || Keyboard.IsKeyDown(Key.RightAlt))
这是System.Windows.Input
名称空间。
Console.ReadKey(true);
暂停程序直到用户按下某个键,然后它才会读取该键。在这种情况下,您没有用户手动按下某个键,因此该程序将永远暂停。
IMO似乎你当前的if
语句也应该可以正常工作,如果你摆脱了ReadKey
行,但是再次硒可能会按这些功能无法检测的方式按键...让我知道如果摆脱ReadKey
作品,或上述作品。如果没有,可能会有替代的硒溶液。