我有一个测试,许多人点击链接'行动持续几分钟。 问题在于: - 在测试期间,我在不同的链接上多次点击, - 在后台测试运行,webdriver窗口没有焦点 - 我在那个时候使用其他应用程序(文本或代码编辑器),当我按下shift / ctrl按钮时,Webdriver会捕获它并在新窗口/标签中打开链接。
Webdriver意外地执行了单击+移位(或单击+ ctrl)操作。我的测试因此而失败。 Webdriver将窗口和选项卡相乘,并在一段时间后丢失句柄/上下文。
有没有办法阻止Webdriver捕获在其他应用程序中按下的ctrl / shift键?
更多信息&代码示例
触发此问题的非常简单的方法... C#中的代码:
for (int i = 0; i < 20; i++)
{
driver.Navigate().GoToUrl("google.com");
driver.FindElement(By.Id("gbqfq")).Clear();
driver.FindElement(By.Id("gbqfq")).SendKeys("were you naughty or nice this year");
driver.FindElement(By.Id("gbqfq")).SendKeys(Keys.Enter);
System.Threading.Thread.Sleep(500);
driver.FindElementByClassName("r").Click();
System.Threading.Thread.Sleep(500);
}
测试正在运行时:
答案 0 :(得分:0)
使用modifierkeys(Shift,Ctrl)时,它们不会自动释放:键在后台保持按下状态。
要解决此问题,您可以将Keys.Null发送到应用程序,这将释放modifierkeys。