2017-02-23 67 views
0

我已经看遍了所有,并继续看到相同的基本“解决方案”,其中没有一个似乎适用于我的问题。这样做的目的是使用热键来显示弹出式窗口。 (手动罚款)。有没有其他的方法来强制一个Alt?也许在尝试按热键组合之前需要做一些特殊的事情?这是在Selenium中使用C#。为什么在使用“action.SendKeys(Keys.Alt +”l“)时忽略Alt。Perform();”?

下面是我尝试使其工作的一些方法的列表。

 System.Windows.Forms.SendKeys.SendWait("%l"); 

     claimMap.UIEditServiceDate.SendKeys("%l"); 

     claimMap.SendKeys("%l"); 

     action.SendKeys(Keys.Alt + "l"); 

     action.SendKeys("%(l)"); 

     action.Build().Perform(); 
     action.SendKeys(Keys.Alt + "l"); 

     System.Windows.Forms.SendKeys.SendWait(Keys.LeftAlt + "l"); 

     action.KeyDown(Keys.Alt).SendKeys("l").Perform(); 

     action.KeyDown(Keys.Alt).SendKeys("l").Build().Perform(); 

     action.SendKeys(Keys.Alt + "l").Perform(); 

     action.SendKeys("%l").Perform(); 
+1

也许尝试发送密钥到实际的'IWebElement'?我想也许'claimMap'是一个元素,所以'claimMap.SendKeys(Keys.Alt +“l”)'现在我不确定你的大多数例子的类型是什么 – mrfreester

+0

Erm,等等,是Alt + L或Alt + I?发送它时,重点是什么窗口? –

+0

此代码是在个人电脑上还是在节点上运行?如果它在节点上运行,那么该节点的操作系统是否与您的PC不同?我有一个类似的问题,我通过将快捷方式更改为使用正确的键取决于当前运行的操作系统来解决。 –

回答

0

我会尝试使用实际的书面语句来调用这些键。

// Single keys: 
SendKeys.Send("{ENTER}") // For enter 
SendKeys.Send("{%}") // For Alt 
SendKeys.Send("{^}") // For Ctrl 
SendKeys.Send("{+}") // For shift 

// Combination keys: 
SendKeys.Send("%(l)") // For Alt-l