2017-05-02 152 views
0

我有一些測試,我用硒來運行它們。我正在嘗試檢查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

雖然我從來沒有做過這Selenium,通常你會檢查是否有鍵與該壓制:

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

這是System.Windows.Input命名空間。

Console.ReadKey(true);暫停程序,直到用戶按下一個鍵,然後它會讀取該鍵。在這種情況下,您沒有用戶手動按下某個鍵,因此該程序會一直保持暫停狀態。

IMO看起來像你目前的if聲明應該也適用,如果你擺脫了你的ReadKey行,但硒可能會按這些功能無法檢測到的方式......讓我知道如果擺脫ReadKey作品,或上述作品。如果不是,也許有另一種硒溶液。

相關問題